PopupWindow与软键盘冲突

2019-08-14  本文已影响0人  lipyhui

一、说明

  笔记主要是记录一些本人在开发当中的学习和使用笔记。笔记内容包含一些本人觉得重要的知识点、本人易犯的错误等。
  由于本人水平有限,其中出现的错误或者不合理的地方望各位读者多多包含,并指出其中不合理和错误的地方,以便我来修改正。谢谢!

二、笔记时间

  2019年08月14日

三、简述

  本文主要记录如何让PopupWindow被顶到软键盘上面。

四、详情

  在我开发当中,有遇到popupWindow中有EditText的场景,这种场景原本是优化操作,提升用户体验的。但是在实际使用中却出现了一个非常不友好的问题,就是当软键盘弹出时,要么popupWindow和里面的内容在原位置一动不动;要么在只有popupWindow里面的页面被挤上去,而popupWindow还是一动不动。
  很明显这两种效果对于我们的理想情况相差太远,我们要的是当软键盘弹出时,我们的popupWindow整体处于软件什么,这样既不影响输入也能实时查看到输入的情况。下面是我对于该效果的实现:

       //解决popupWindow 不随输入法顶上去
        setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);  //BasePopupWindow中设置

        popupWindow.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);  //给已创建的popupWindow设置

  其实我们只需要给popupWindow 设置该参数就行了,如果popupWindow已经创建那么我们就。当然我也试过在manifest里面设置该参数,但是没有效果,也许是要在style里面设置,不过既然找到的可行的方法,我就没有在尝试了。
  欢迎感兴趣的朋友尝试在syle里面设置,把测试效果反馈给我和阅读到该文的小伙伴。非常感谢,举起双手拜倒在伟人脚下!!!

上一篇 下一篇

猜你喜欢

热点阅读