Android windowSoftInputMode属性解析

windowSoftInputMode为Android中activity在Manifest.xml中设置的属性之一,主要用于解决屏幕软键盘与Activity布局的问题。

官方说明如下:

How the main window of the activity interacts with the window containing the on-screen soft keyboard. The setting for this attribute affects two things:

  • The state of the soft keyboard — whether it is hidden or visible — when the activity becomes the focus of user attention.
  • The adjustment made to the activity's main window — whether it is resized smaller to make room for the soft keyboard or whether its contents pan to make the current focus visible when part of the window is covered by the soft keyboard.

The setting must be one of the values listed in the following table, or a combination of one "state..." value plus one "adjust..." value. Setting multiple values in either group — multiple "state..." values, for example — has undefined results. Individual values are separated by a vertical bar (|).

大意为,该属性主要用于描述activity窗口与软键盘窗口的交互,设置该属性主要会影响两个方面:

  • 软键盘的状态:当Activity被用户获取焦点时,软键盘是显示还是隐藏
  • Activity窗口的调整:是否通过缩小原视图来为软键盘获取足够的空间,是否通过覆盖的方式来为软键盘获取足够的空间
设置的属性必须是下表的参数之一,或是由“state...”(改变软键盘状态)和"adjust...”(改变Activity窗口调整状态)组合而成,由“|”符号组合两个参数。

windowSoftInputMode参数表
描述
stateUnspecified软键盘的状态未指明,系统会自动根据选择的主题信息执行相应的行为,是系统默认选项
stateUnchanged当该Activity来到前台时,软键盘保持其原有的状态(在前一个Activity中显示就继续显示,隐藏就继续隐藏)
stateHidden当该Activity是被直接打开时,隐藏软键盘,当该Activity是由按下back键打开时,保持软键盘状态
stateAlwaysHidden只要进入该Activity软键盘就会被隐藏
stateVisible当该Activity是被直接打开时,显示软键盘,当该Activity是由按下back键打开时,保持软键盘状态
stateAlwaysVisible只要进入该Activity软键盘就会被显示
adjustUnspecifiedActivity窗口的调整未指明,系统会自动根据选择的主题信息执行相应的行为,是系统默认选项,如果存在ScrollView
会使用缩小视图的方式,否则使用覆盖的方式
adjustResize使用缩小视图的方式来为软键盘腾出空间,意味着整体布局底部会上移,空间会缩小,控件可能会挤到一起
adjustPan通过覆盖的方式来为软键盘获取足够的空间,软键盘会覆盖布局底部控件,要是软键盘盖住了当前输入框的时候整体
布局会往上移动

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: android:windowsoftinputmodeAndroid中的一个属性,用于控制软键盘的显示和隐藏。它可以设置为多种模式,如adjustResize、adjustPan等,用于适应不同的界面布局和输入场景。其中,adjustResize模式会自动调整界面布局,以避免软键盘遮挡输入框;adjustPan模式则会将整个界面上移,以保证输入框不被遮挡。这个属性Android应用开发中非常常用,可以提高用户体验和界面交互的效率。 ### 回答2: android:windowSoftInputModeAndroid 系统中一个用于控制软键盘与屏幕界面交互的属性,可以通过在 AndroidManifest.xml 文件中为特定的 Activity 指定这一属性值来实现对软键盘的控制。这一属性值会影响软键盘何时弹出和收起,以及弹出后对界面的遮挡方式等行为。 该属性值的取值范围包括以下几种: - stateUnspecified:使用系统默认行为。这是 Android 系统默认的软键盘控制模式。 - stateUnchanged:不对界面做出任何调整,软键盘出现时不做遮盖处理。 - stateHidden:软键盘在界面中不会弹出,会被隐藏。 - stateAlwaysHidden:软键盘绝对不会弹出,即使用户主动召唤。 - stateVisible:软键盘在界面中出现时不会遮盖输入框等元素。 - stateAlwaysVisible:软键盘会一直出现在屏幕上,无论输入焦点在何处。 除了上述最常见的取值之外,还有其他 6 种组合属性值,包括 adjustResize、adjustPan、adjustUnspecified、stateUnchanged|adjustResize、stateHidden|adjustResize、stateVisible|adjustPan 等,它们分别表示针对屏幕调整的方式。例如,stateHidden|adjustResize 表示在软键盘弹出时,界面会进行调整,但不会被软键盘遮盖。 使用 android:windowSoftInputMode 属性可以让开发者更好地控制软键盘与界面的交互效果,从而提升应用程序体验。同时在实际使用中,应该选择合适的值,根据不同的需求和设计要求进行配置。 ### 回答3: android:windowsoftinputmode是一种用于设置Android界面在软键盘弹出时的行为的属性。它可以用来指定如何调整界面布局,使其不受弹出软键盘的影响。 Android:windowsoftinputmode的值有以下几种: 1. adjustResize:自动调整布局大小,以便在软键盘弹出时保持界面的稳定性。这种模式会调整布局,使其不被软键盘遮挡,从而避免了用户无法看到完整界面的问题。 2. adjustPan:将整个界面向上移动,直到软键盘完全弹出。这种模式可以确保输入框在软键盘上方,避免遮挡输入框的问题。 3. adjustNothing:不做任何调整,软键盘会覆盖在界面上。这种模式通常用于自定义控件或者实现手动调整界面布局的情况。 Android:windowsoftinputmode可以在AndroidManifest.xml文件中设置,也可以在代码中动态设置。在使用时应根据实际情况选择合适的模式,保障用户体验的同时确保功能的完整性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值