在实际项目中,肯定会有输入数据的情况,这样就会用到键盘。

但是键盘弹起必然会遮盖掉屏幕下半部分的布局。

比如说一个登陆界面,账号、密码的输入框在最上面,登陆、取消按钮在下方,当用户点击输入账号时,就有可能把最底下的按钮遮住,甚至会把密码框也遮住导致不能直接切换到密码输入框。这样用户使用起来是不是特别别扭呢?

解决方法:

在manifest文件中的activity标签中修改android:windowSoftInputMode属性

属性参数:

各值的含义:

【A】stateUnspecified:软键盘的状态并没有指定,系统将选择一个合适的状态或依赖于主题的设置

【B】stateUnchanged:当这个activity出现时,软键盘将一直保持在上一个activity里的状态,无论是隐藏还是显示

【C】stateHidden:用户选择activity时,软键盘总是被隐藏

【D】stateAlwaysHidden:当该Activity主窗口获取焦点时,软键盘也总是被隐藏的

【E】stateVisible:软键盘通常是可见的

【F】stateAlwaysVisible:用户选择activity时,软键盘总是显示的状态

【G】adjustUnspecified:默认设置,通常由系统自行决定是隐藏还是显示

【H】adjustResize:该Activity总是调整屏幕的大小以便留出软键盘的空间

【I 】adjustPan:当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分

还有一种情况。你单纯想将原本靠在屏幕底部的按钮、文字、图片、布局之类的控件不被键盘遮住,想它们跟着键盘上下移动。

解决方法:

其实很简单。xml中给控件添加属性alignParentBottom = true;在显示键盘和隐藏键盘方法中添加方法view.requestLayout();

这样view就会跟着键盘移动了。

有用点个赞~

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐