Activity设置窗口软键盘的交互

所需要的属性:windowSoftInputMode

windowSoftInputMode介绍

windowSoftInputMode中文:窗口输入模式。
一般是在AndroidManifest.xml<activity/>下配置的或者是在App的主题(theme)中设置。

属性介绍

1 stateAlwaysHidden

当跳到此activity时软键盘总是隐藏的

2 stateHidden

初次加载时软键盘是隐藏的,当从其他界面返回时则会根据上一个activity的软键盘状态来判断是否显示

3 stateUnchanged

根据上一个界面来判断当前软键盘是否隐藏

4 stateVisible

初次加载时软键盘是显示的,当从其他界面返回时则会根据上一个activity的软键盘状态来判断是否显示

5 stateAlwaysVisible

当跳到此activity时软键盘总是显示的

6 stateUnspecified

系统默认的软键盘状态。

7 adjustResize

始终调整Activity主窗口的尺寸,来为屏幕上的软键盘腾出空间

7.1 优缺点

优点:

  • 不会把标题栏顶出当前布局
  • 有多项输入时,当前输入框下面的输入可上下滑动输入

缺点:

  • 需要界面本身可以调整布局
  • 全屏时失效

7.2 注意事项:

需要界面本身可以调整尺寸,如在布局中添加ScrollView,或输入控件属于RecycleView/ListView某一项

失效情况

  • Activity主窗口无法调节
  • Activity全屏
  • android5.0以上通过style设置沉浸式状态栏模式而不设置fitSystemWindowstrue

注:

如果多个View设置了fitsSystemWindows=“true”,只有初始的View起作用,都是从第一个设置了这个的view开始计算padding
优点:使用简单,需要沉浸式状态的界面,不需要自己计算padding状态栏高度
缺点:使用有限制
失效情况:View的其他padding值被重新改写了
适用情况:界面全屏、设置界面主题为沉浸式状态栏

7.3适用情况

非全面屏或是非沉浸式状态栏输入界面,输入框较多。

8 adjustPan

不调整Activity主窗口的尺寸来为软键盘腾出空间,而是自动平移窗口的内容,使当前焦点永远不被键盘遮挡,让用户始终都能看到其输入的内容。这通常不如尺寸调正可取,因为用户可能需要关闭软键盘以达到被遮盖的窗口部分或与这些部分进行交互

8.1 注意事项

页面不会重新布局,当前输入框和键盘会直接将当前输入框以上的界面整体向上平移,这样即使界面包含标题栏,也会被顶上去。没有失效情况。

8.2 优缺点

优点:

  • 使用简单,不需要界面本身可调整尺寸,不会有失效情况。

缺点:

  • 会把标题栏定出当前界面
  • 有多个输入时,当前输入框下面的输入框无法输入,必须收起键盘显示输入框再输入

8.3 适用情况

有少量输入项,且输入量据界面上方

9 adjustUnspecified

系统默认的布局状态。

10 adjustNothing

布局不会发生变化,软键盘覆盖在其上面,底部会被遮挡

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值