解决常见的软键盘遮挡的方法
一、问题概述
在编辑框输入内容时会弹出软键盘,而手机屏幕区域有限往往会遮住输入界面,我们先看一下问题:
输入密码时输入框被系统键盘遮挡了,大大降低了用户操作体验,这就是开发中非常常见的软键盘遮挡的问题,该如何解决?
方法1
在你的activity中的oncreate中setContentView之前写上这个代码
getWindow()oftInputMode(_INPUT_ADJUST_PAN);
方法2
在 项目的文件中界面对应的里加入
android:windowSoftInputMode="stateVisible|adjustResize"
这样会让屏幕整体上移。如果加上的 是 android:windowSoftInputMode="adjustPan"这样键盘就会覆盖屏幕。
关于android:windowSoftInputMode
activity主窗口与软键盘的交互模式,可以用来避免输入法面板遮挡问题,Android1.5后的一个新特性。
这个属性能影响两件事情:
【一】当有焦点产生时,软键盘是隐藏还是显示
【二】是否减少活动主窗口大小以便腾出空间放软键盘
它的设置必须是下面列表中的.一个值,或一个”state…”值加一个”adjust…”值的组合。在任一组设置多个值——多个”state…”values,例如&mdash有未定义的结果。各个值之间用|分开。
例如:
在这设置的值(除"stateUnspecified"和"adjustUnspecified"以外)将覆盖在主题中设置的值
各值的含义:
【A】stateUnspecified:软键盘的状态并没有指定,系统将选择一个合适的状态或依赖于主题的设置
【B】stateUnchanged:当这个activity出现时,软键盘将一直保持在上一个activity里的状态,无论是隐藏还是显示
【C】stateHidden:用户选择activity时,软键盘总是被隐藏
【D】stateAlwaysHidden:当该Activity主窗口获取焦点时,软键盘也总是被隐藏的
【E】stateVisible:软键盘通常是可见的
【F】stateAlwaysVisible:用户选择activity时,软键盘总是显示的状态
【G】adjustUnspecified:默认设置,通常由系统自行决定是隐藏还是显示
【H】adjustResize:该Activity总是调整屏幕的大小以便留出软键盘的空间
【I】adjustPan:当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分
方法3
把顶级的layout替换成ScrollView,或者说在顶级的Layout上面再加一层ScrollView。这样就会把软键盘和输入框一起滚动了,软键盘会一直处于底部。
但这些方法虽然比较简单,但往往都有一定的局限性不是很灵活,有时达不到预期效果,大家可以试试或许也能解决你的问题,下面就教大家一种具有代码可控性的一种方法:
三、代码可控性方法
键盘关闭:以上所述是小编给大家介绍的Android软键盘遮挡的四种完美解决方案,希望对大家有所帮助,如果大家有任何疑问请给我们留言,小编会及时回复大家的。在此也非常感谢大家对的支持!
-
键盘按键错乱怎么恢复
导语:电脑键盘错乱,不管是台式机还是笔记本都很苦恼,如何解决这个问题啦,那就听小编给你慢慢分析解决工具驱动精灵360安全卫士关闭数字键盘先查看自己是不是打开了数学键盘,如果打开数字键盘,j,k,l会分别变成1,2,3笔记本关闭数字键盘是按“F+Nmlk”台式机是按“Shit+Nmlk...
-
关于AMD Radeon HD 6470M显卡资料的介绍
AMDRadeonHD6470M显卡怎么样,我的笔记本使用的是AMDRadeonHD6470M显卡,AMDRadeonHD6470M显卡能玩游戏吗,为什么我的笔记本玩孤岛危机2很卡。MDRadeonHD6470M显卡的性能只能算是中低端的笔记本独立显卡,性能不是很好,这款显卡只有64bit的显存位宽和1GBGDDR3的'显存...
-
显卡各种后缀字母有什么含义
显卡型号中最复杂的部分,应该是型号后的英文字母。因为它代表着显卡虽然采用同一个图形核心,但市场的定位不同。最麻烦的是ATI与NVIDIA公司各自使用的后缀字母不统一(也不可能统一),让人看得眼花缭乱。使用电脑的朋友一定知道显卡的功能,但是你没有看到在显卡的型...
-
主流显卡NVIDIAGTX1060拆解图赏
NVIDIA刚刚正式发布了新一代主流显卡GeForceGTX1060,不过今天只是纸面发布,暂时没有性能评测,上市也得等等。GTX1060外部采用了和GTX1080/1070风格类似的散热器,很长很威猛,但其实PCB很短小。如果你想知道GTX1060内部长什么样子,一起来看拆解图:核心编号GP106-400-A1,...