Android 如何实现在隐藏键盘后,让输入框保持当前高度,类似QQ、微信聊天窗口。

我的布局界面中,底部有一个EditText,EditText获取焦点时,弹出键盘,会将EditText推到键盘上面。

请问如何实现在调用了隐藏键盘的方法后,让EditText保持在键盘存在时的高度?

参考:类似QQ、微信等App的聊天界面,先点击输入框,再点击表情按钮,此时键盘消失,输入框保持在当前高度,等表情GridView计算好高度,再显示在输入框下面。

阅读 14k
6 个回答

刚好之前做过这个功能,使用的方法就是 动态的切换 activity.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN)activity.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE) 这两个值来完成的, 首先计算好输入法的高度,保存起来。在edittext下面有一个layout layout的高度设为输入法的高度 ,visibility是gone的;softInputMode 是 ADJUST_RESIZE,关闭输入法的时候把layout 设为可见,显示表情界面,再把softInputMode 设为SOFT_INPUT_ADJUST_PAN,下次弹出输入法就覆盖在表情区上面,切换也很顺滑,基本和微信差不多,中间有些状态切换要比较小心,大体思路就是这样子,细节的就不多说了,希望能帮到你,如果有更好的方案也麻烦和我分享一下哈

这可能是我今年最精彩点赞数却没有99+的一次回答

新手上路,请多包涵

请问下 这个问题解决了吗? 能不能讲讲思路?

楼主解决了嘛?

新手上路,请多包涵

底部随输入法高度变化而变化的控件SoftLinearLayout链接描述

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进