缘由
为了迎合用户习惯,很多时候我们都要使用侧滑返回这个功能。而设置侧滑返回,就要求将页面的背景设置为透明。这样就带来一个问题,以
软键盘模式SOFT_INPUT_ADJUST_RESIZE
为例,当二级页面弹出软键盘时,一级页面也会重新绘制,页面复杂的话容易造成卡顿现象。
针对这个问题,在页面onPause情况下,可以去掉对软键盘的响应,提升app性能。
优化方式
在BaseActivity中添加如下代码:
private int softInputMode = -1;
@Override
protected void onResume() {
super.onResume();
if (softInputMode != -1) {
Window window = getWindow();
if (window != null) {
window.setSoftInputMode(softInputMode);
}
}
}
@Override
protected void onPause() {
super.onPause();
Window window = getWindow();
if (window != null) {
WindowManager.LayoutParams attrs = window.getAttributes();
if (attrs != null) {
softInputMode = attrs.softInputMode;
window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING);
}
}
}