情景:在ScrollView中嵌套EditText,当EditText获取焦点时,会导致整个ScrollView自动下沉,软键盘也会遮挡住EditText.
找了好几天办法,试图禁止ScrollView的自动滚动,没有用。看下效果图,巨恶心有木有。
今天找到了一篇博文 https://blog.csdn.net/saroll57/article/details/44243397 ,虽然遇到的问题不一样,但是他的办法同样解决了我的问题。
在Activity中加入一句话就可以了。
BaseActivity.this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
而且,这个时候,BaseAcitivity的作用也体现出来了。所有的Activity继承BaseActivity,BaseActivity继承自AppCompatActivity。这样再有改动的时候,只要改动一处BaseActivity,问题就解决了。看下修改后的效果图。原因应该是,软键盘弹起后ScrollView的onSizeChange方法被调用了,要设置它为SOFT_INPUT_ADJUST_PAN,就会每次适应软键盘弹出后的UI界面。