300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 【转】android软键盘显示与主窗口调整方式设置

【转】android软键盘显示与主窗口调整方式设置

时间:2023-12-18 02:30:52

相关推荐

【转】android软键盘显示与主窗口调整方式设置

android软键盘盖住输入框的解决方式

当在Android的layout设计里面如果输入框过多,则在输入弹出软键盘的时候,下面的输入框会有一部分被软件盘挡住,从而不能获取焦点输入。

解决办法:

方法一:在你的activity中的oncreate中setContentView之前写上这个代码getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);(测试失败)/getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE|WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);

方法二:在项目的AndroidManifest.xml文件中界面对应的<activity>里加入android:windowSoftInputMode="stateVisible|adjustResize",这样会让屏幕整体上移。如果加上的是

android:windowSoftInputMode="adjustPan"这样键盘就会覆盖屏幕。

方法三:把顶级的layout替换成ScrollView,或者说在顶级的Layout上面再加一层ScrollView的封装。这样就会把软键盘和输入框一起滚动了,软键盘会一直处于底部。

注:方法一和二应该是同一种方法,不过一个是在代码里实现一个是在xml文件里实现。可能会应为1.5和之前的版本不支持该方法。但是方法三是肯定没有问题的。

软键盘状态可以设置的值有:

1.stateUnspecified

不显式指定软键盘的状态(隐藏或显示),状态将依赖于主题的设置或者将由系统将选择一个合适的状态;是软键盘状态的默认设置;

2.stateUnchanged

Activity获得焦点(windowsFocus?)时,软键盘保持前面的状态,无论是隐藏还是显示;

3.stateHidden

正常情况下,Activity获得焦点时,软键盘是隐藏状态(直到用户自己touch文本框);--窗口打开时就会默认显示软键盘

4.stateAlwaysHidden

当该主窗口获得焦点时,软键盘总是被隐藏;

5.stateVisible

正常情况下,Activity获得焦点时,软键盘是显示状态(如果该窗口需要的话(即有EditText,或有Editable的控件));

6.stateAlwaysVisible

该主窗体获得焦点时,软键盘总是显示状态;

窗口状态可以设置的值有:

1.adjustUnspecified

默认设置,不指定主窗口是否调整以适合软键盘输入,由系统决定干什么;

2.adjustResize

调整主窗口,也就是挤压窗口界面,将窗口调整到软键盘之上;

3.adjustPan

不调整窗口,显示到状态上就是软键盘会覆盖主窗口的下半部分;

注:上述两种值的设置用“|”隔开

对于非Activity的窗口,可以通过setSofeInputMode()来设置上述属性

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。