在Android开发过程中会经常遇到的scrollview包含的布局中,当点击edittext时,弹出的软键盘经常会使在布局底部的控件顶起,此时的解决方案如下:
清单文件中将activity的类型修改为
android:windowSoftInputMode="adjustPan|stateHidden
<activity
android:name=".activity.main.BookCompanyActivity"
android:windowSoftInputMode="adjustPan|stateHidden />
最近做聊天界面时,点击底部的EditTextView时弹出的键盘框把EditTextView给挡住了,显然不符合预期。查询资料发现了有如下三种解决方案:
方法一:
在项目的AndroidManifest.xml文件中界面对应的里加入
android:windowSoftInputMode="adjustPan"
这样键盘就会覆盖屏幕。
通过实践发现方法一并没有起作用,查询资料得知我的布局是RelativeLayout,底部菜单用了android:layout_alignParentBottom="true"
,
因此方法一不起作用,
故采用方法二。
方法二:
在代码setContentView()之前加入:
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN|
WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
亲测有效,另外还有一种通用的方法:
方法三:
把顶级的layout替换成ScrollView,或者说在顶级的Layout上面再加一层ScrollView的封装。这样就会把软键盘和输入框一起滚动了,软键盘会一直处于底部。