【问题标题】:Unable to show a PopupWindow above soft keyboard无法在软键盘上方显示 PopupWindow
【发布时间】:2015-11-26 03:53:28
【问题描述】:

PopupWindow中有一个方法:

public void showAtLocation(View parent, int gravity, int x, int y)

在大多数设备上,我可以在屏幕底部放置一个 PopupWindow,即使键盘是打开的,像这样:

showAtLocation( rootView, Gravity.Bottom, 0, 0 )

但在某些设备上存在例外情况, 例如 Xperia Z1 comapct、华硕 Zenfone 5。 PopupWindow 的可用空间受到限制。 (键盘外)

有人遇到同样的问题吗? 或者有什么建议?

【问题讨论】:

  • 可能你必须关闭键盘才能显示弹出窗口。
  • 但在键盘上方显示弹出窗口是我的主要目的。
  • 尝试使用android:windowSoftInputMode="adjustPan"
  • 我也遇到了同样的问题!它在三星 S4 上运行良好,但在三星 S2 上显示在键盘顶部!

标签: android android-layout


【解决方案1】:

在您的PopupWindow 上添加这两种输入模式:

popupWindow.setSoftInputMode(PopupWindow.INPUT_METHOD_NEEDED);
popupWindow.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);

【讨论】:

  • 为什么要覆盖软输入模式?只有最后一行有效。
  • 第一行应该调用:setInputMethodMode
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-03
  • 2013-12-16
  • 2018-02-19
相关资源
最近更新 更多