razerdp/BasePopup

横屏下,键盘不会顶起Popup

Closed this issue · 11 comments

  • 系统版本:华为P9(8.0),Vivo Y67A(6.0)

  • 库版本:2.2.1

  • 问题描述/重现步骤:
    把Demo里面的Activity设置为横屏,更多具体例子-从底部上滑的输入法。

  • 问题代码/截图:

具体Demo是SlideFromBottomInputPopup这个类

popup_slide_from_bottom_with_input.xml里面EditText增加了android:imeOptions="flagNoExtractUi",不然键盘会全屏显示

<EditText
        android:id="@+id/ed_input"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#DCDCDC"
        android:hint="请输入"
        android:minEms="8"
        android:padding="16dp"
        android:imeOptions="flagNoExtractUi"
        android:textSize="14sp"/>
  • 报错信息:无

@razerdp

Demo里面竖屏是没问题的。

横屏是故意不去适配的~

因为多数情况下,横屏的时候顶起来PopupWindow根本不够空间显示,在游戏中的话横屏也是专门给一个View进行输入,而且这个输入一般在顶部。

所以BasePopup对横屏键盘适配是屏蔽的。

如果实在有需要,我下个版本可以提供一个参数强制适配~

横屏是故意不去适配的~

因为多数情况下,横屏的时候顶起来PopupWindow根本不够空间显示,在游戏中的话横屏也是专门给一个View进行输入,而且这个输入一般在顶部。

所以BasePopup对横屏键盘适配是屏蔽的。

如果实在有需要,我下个版本可以提供一个参数强制适配~

有这样的需求,如果可以控制顶起或不顶起最好,感谢作者~

嗯,下一个版本我提供一个参数允许强制适配吧~

如果我现在需要在横屏下顶起Popup,改源码哪里可以实现,可以给下相关代码吗~

下一个版本提供 setAdjustInputMode()方法,传参加入BasePopupWindow.FLAG_KEYBOARD_FORCE_ADJUST即可强制适配。

因为有时候横屏默认不需要android:imeOptions="flagNoExtractUi",所以这个参数并不是默认配置的。

相关测试用例已经添加到Demo中,请留意Demo~
device-2019-09-26-145222

下一个版本提供 setAdjustInputMode()方法,传参加入BasePopupWindow.FLAG_KEYBOARD_FORCE_ADJUST即可强制适配。

因为有时候横屏默认不需要android:imeOptions="flagNoExtractUi",所以这个参数并不是默认配置的。

相关测试用例已经添加到Demo中,请留意Demo~
device-2019-09-26-145222

Woooooooo~太棒了!

请问:在横屏状态下PopupWindow的输入法怎么适配,添加setKeyboardAdaptionMode(BasePopupWindow.FLAG_KEYBOARD_FORCE_ADJUST)后,输入法是直接把整个PopupWindow顶起来,而不是位于输入框下方。

请问:在横屏状态下PopupWindow的输入法怎么适配,添加setKeyboardAdaptionMode(BasePopupWindow.FLAG_KEYBOARD_FORCE_ADJUST)后,输入法是直接把整个PopupWindow顶起来,而不是位于输入框下方。

跟竖屏一样的操作flag即可。如果整个顶起来了你可以查看一下Layoutinspector,也许是pop高度超过了屏幕,那么自然没法适配了。