有时候popupwindow会被输入法覆盖, 有时候popupwindow会被输入法给顶上去. 而且这个问题还跟theme的windowFullscreen属性相关. 不过这些可以都不用管, 根据项目需求, 可自己设定相关参数.
/** 输入法将覆盖popupwindow*/ popupWindow.setSoftInputMode(PopupWindow.INPUT_METHOD_NEEDED); popupWindow.setSoftInputMode(android.view.WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING); /** 输入法将把popupwindow顶上去*/ popupWindow.setSoftInputMode(PopupWindow.INPUT_METHOD_NEEDED); popupWindow.setSoftInputMode(android.view.WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
注意代码的顺序. 要先设置 需要输入法, 即 先设置 PopupWindow.INPUT_METHOD_NEEDED, 再设置 输入法会不会导致窗口尺寸有所调整, 即 SOFT_INPUT_ADJUST_NOTHING (不调整popupwindow尺寸) 和 SOFT_INPUT_ADJUST_RESIZE (调整窗口尺寸)
还有其它的一些参数. 可以查看PopupWindow.java & WindowManager.java 这个文件