Android:windowSoftInputMode属性详解

转载自 https://www.jianshu.com/p/b42fe4932b27 

作者:_小马快跑_
链接:https://www.jianshu.com/p/b42fe4932b27
来源:简书

''

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通常用的少点,因为用户可能必须关闭软键盘才能和窗口中被遮挡的部分交互。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值