问题点
进入系统设置-网络和互联网-WLAN-点击WIFI item ,密码输入框被遮挡,输入的密码不可见.如下图
复现的场景
机器横屏可复现,竖屏不存在
跟density 相关的。
不同分辨率、不同density 的情形很多。所以并不是所有的机型产品必现的,当遇到的识货我们就去解决。
-
同一台机器,分辨率不会变,不同density 下,部分density 下会出现遮挡问题。 wm density value
命令可以用来调试复现问题。 -
同一台机器,density 设置一样,不同固件接不同分辨率的机器,部分分辨率下会出现。 wm size value
命令可以来调试复现问题。实际自己遇到情况,如上,无论自己接触到的RK、全志、MTK 产品,都偶尔会遇到遮挡问题。 原因如上举例所说。
解决问题方案
设置输入模式
在 WifiConfigController2.java 中设置输入模式:SOFT_INPUT_ADJUST_PAN
具体代码如下:
public WifiConfigController2(WifiConfigUiBase2 parent, View view, WifiEntry wifiEntry,
int mode) {
mConfigUi = parent;
mView = view;
mWifiEntry = wifiEntry;
mContext = mConfigUi.getContext();
// Init Wi-Fi manager
mWifiManager = (WifiManager) mContext.getSystemService(Context.WIFI_SERVICE);
initWifiConfigController2(wifiEntry, mode);
(scanForActivitySetSoftInputMode(mContext)).getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
}
private static Activity scanForActivitySetSoftInputMode(Context cont) {
if (cont == null)
return null;
else if (cont instanceof Activity)
return (Activity)cont;
else if (cont instanceof ContextWrapper)
return scanForActivitySetSoftInputMode(((ContextWrapper)cont).getBaseContext());