从一个问题来认识android:windowSoftInputMode属性

今天遇到一个挺奇怪的问题,简单说一下,我一个布局中,上面使用的是一个Scrollview,底部有一个保存的button,Scrollview里面有一个Edittext,其他部分默认是折叠的,点击可以展开,刚进入这个界面的时候,需要让这个EditTXT获得焦点,键盘弹出来,可是那个button并没有在键盘的上面,而是被键盘遮住了,可是如果我要是把这个Scrollview展开后,在点击这个Edittext,保存的button就会自动的顶到键盘的上面。Scrollview展开就可以实现把button顶到上面,Scrollview折叠就不行,我刚开始以为是这个Scrollview在作怪,然后在折叠那部分下面又加了一个默认透明布局,让这个Scrollview高度沾满真个屏幕,可是发现还是不行,后来才知道,是键盘弹出的问题,可以在清单文件中对单独的activity进行键盘弹出的设置,android:windowSoftInputMode=""   就是这个属性。值有几种选项

activity主窗口与软键盘的交互模式,可以用来避免输入法面板遮挡问题,Android1.5后的一个新特性。

各值的含义:

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

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

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

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

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

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

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

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

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


可以一次设置多个值的,例如

android:windowSoftInputMode="stateHidden|adjustPan"  如果进入这个界面,键盘没隐藏会自动被隐藏,并且如果要弹出键盘,键盘会把布局顶上去,而不是覆盖上去。


参考:  http://blog.csdn.net/twoicewoo/article/details/7384398


  • 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、付费专栏及课程。

余额充值