我们在开发过程中,经常会使用到布局内输入控件如:EditText等,如果不设置Window参数,EditText下方的控件就会被键盘顶上去。很奇怪,试了N次,才发现,原来Activity的Window属性没设置,导致键盘顶获得焦点以下的控件全部被顶上去。
经过多次试验,得出结论:解决这个问题不外乎两种方法:一是通过配置文件来配,别一种方法则是用代码的方式实现。下面我们来解决。
第一种方法:配置文件更改
在AndroidManifest.xml文件中进行配置属性就可以解决。
<activity android:name=".MainActivity" android:windowSoftInputMode="adjustPan|stateHidden"></activity>
android:windowSoftInputMode实际上是Activity中窗体(Window)的输入模式,其有很详细的解释,相信很多人都可以在很多博客上找得到,为减少文字输入,请参考"明轩子博客”,标题为:android:windowSoftInputMode属性详解
第二种方法:代码实现
就是在Activity.OnCreate方法内输入如下语句:
this.getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN
| WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);就可以解决这个问题。