博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android:windowSoftInputMode属性详解
阅读量:5953 次
发布时间:2019-06-19

本文共 1283 字,大约阅读时间需要 4 分钟。

windowSoftInputMode属性主要是说明activity界面的主窗口和屏幕内软键盘窗口如何交互的,设置这个属性会影响两件事:

1.软键盘的状态-当activity获得焦点时,软键盘是隐藏状态还是可见状态

2.对activity主窗口的调整-是否调整activity主窗口的大小来为软键盘预留空间,是否当activity主窗口的部分内容被软键盘遮盖时它的内容焦点是可见的

设置的值必须是下列列表中的值的一个,或者是一个”state…”和一个”adjust…”的组合,但是在任一组中设置多个值-如在一组中设置了多个”state…”会得到未知结果,各个值之间用竖线(|)隔开,例如:

    <activity android:windowSoftInputMode="stateVisible|adjustResize" . . . >

state...属性

"stateUnspecified":软键盘的状态(是否隐藏或可见)没有指定。该系统将选择一个合适的状态或  依靠theme中的设置,这个是默认设置。

"stateUnchanged":当activity来到栈顶时,软键盘可见或隐藏和前一个activity软键盘的状态保持一致并且不变。

"stateHidden":当用户选择到该activity时,软键盘是隐藏的-也就是说,当用户确实导航到该activity时,而不是因为离开另一个activity退回到该activity的时候。

"stateAlwaysHidden":软键盘总是隐藏的(即使activity有输入焦点)

"stateVisible":通常适当情况下软键盘是可见的(当用户导航到该activity的主窗口时)

"stateAlwaysVisible":当用户选择到该activity的时候软键盘是可见的-也就是说,用户确实是导航到该activity的时候,而不是因为离开另一个activity才返回到该activity的时候。

这是默认设置软键盘的行为。

adjust...属性

"adjustUnspecified":这个设置没有指明是否减小activity主窗口的大小来为软键盘预留空间,或者是否当activity主窗口的部分内容被软键盘遮盖时它的内容焦点是可见的。系统会选择其中的一种模式:根据窗口内容里是否有可以滑动内容的布局view,如果有这样的一个view,activity的窗口将会调整大小,假设滚动可以显示所有窗口的内容在一个更小的区域。

"adjustResize":activity的主窗口总是调整大小来为软键盘预留空间

"adjustPan":activity的主窗口并不会调整大小来为软键盘预留空间,相反,当前窗口的内容将会自动移动以便当前焦点从不被软键盘遮盖,用户能总是看到输入内容的部分。adjustPan相比于adjustResize通常用的少点,因为用户可能必须关闭软键盘才能和窗口中被遮挡的部分交互。

转载于:https://juejin.im/post/5a33e7ef5188256970780cff

你可能感兴趣的文章
账户注销完自动登录账户,并且不需要再点击屏幕的账户头像
查看>>
【Interface&navigation】按钮(29)
查看>>
我要学python之装饰器
查看>>
Extjs4.x (MVC)Controller中refs以及Ext.ComponentQuery解析
查看>>
消息最终一致性解决方案之RabbitMQ实现
查看>>
记录:网络通信协议中的TCP/IP与UDP
查看>>
我的友情链接
查看>>
基于YUM安装与源码编译或二进制多实例安装Mariadb,mysql
查看>>
基于jxl导入导出Excel
查看>>
多线程面试题
查看>>
GLKVector3参考
查看>>
学习:java设计模式—工厂模式
查看>>
CISCO路由器、交换机密码恢复
查看>>
Cgi与php-Cgi以及Fast-Cgi与php-fpm的理解
查看>>
我的友情链接
查看>>
odoo 财务会计相关介绍
查看>>
大型分布式C++框架《四:netio之请求包中转站 上》
查看>>
lnmp之PDO_mysql.so
查看>>
原码、补码、反码、1的补码
查看>>
安卓真机测试遇到的检测不到安卓设备的问题
查看>>