2024年6月11日发(作者:)
解决常见的软键盘遮挡的方法
解决常见的软键盘遮挡的方法
一、问题概述
在编辑框输入内容时会弹出软键盘,而手机屏幕区域有限往
往会遮住输入界面,我们先看一下问题:
输入密码时输入框被系统键盘遮挡了,大大降低了用户操作
体验,这就是开发中非常常见的软键盘遮挡的问题,该如何解决?
二、简单解决方案
方法1
在你的activity中的oncreate中setContentView之前写上这
个代码
getWindow().setSoftInputMode(Params.
SOFT_INPUT_ADJUST_PAN);
方法2
在 项目的文件中界面对应的里加入
android:windowSoftInputMode=“stateVisible|adjustResize"
这样会让屏幕整体上移。如果加上的 是
android:windowSoftInputMode="adjustPan"这样键盘就会覆盖
屏幕。
关于android:windowSoftInputMode
activity主窗口与软键盘的交互模式,可以用来避免输入法
面板遮挡问题,Android1.5后的一个新特性。
这个属性能影响两件事情:
当有焦点产生时,软键盘是隐藏还是显示
是否减少活动主窗口大小以便腾出空间放软键盘
它的设置必须是下面列表中的一个值,或一个”state。”值加
一个”adjust。”值的.组合。在任一组设置多个值――多
个”state。”values,例如&mdash有未定义的结果。各个值之间
用|分开。
例如:
在这设置的值(除"stateUnspecified"和"adjustUnspecified"以
外)将覆盖在主题中设置的值
各值的含义:
stateUnspecified:软键盘的状态并没有指定,系统将选择一
个合适的状态或依赖于主题的设置
stateUnchanged:当这个activity出现时,软键盘将一直保
持在上一个activity里的状态,无论是隐藏还是显示
stateHidden:用户选择activity时,软键盘总是被隐藏
stateAlwaysHidden:当该Activity主窗口获取焦点时,软键
盘也总是被隐藏的
stateVisible:软键盘通常是可见的
stateAlwaysVisible:用户选择activity时,软键盘总是显示的
状态
adjustUnspecified:默认设置,通常由系统自行决定是隐藏
还是显示
adjustResize:该Activity总是调整屏幕的大小以便留出软键
盘的空间
adjustPan:当前窗口的内容将自动移动以便当前焦点从不被
键盘覆盖和用户能总是看到输入内容的部分
方法3
把顶级的layout替换成ScrollView,或者说在顶级的Layout
上面再加一层ScrollView。这样就会把软键盘和输入框一起滚动
了,软键盘会一直处于底部。
三、代码可控性方法


发布评论