您的位置:首页 > 移动开发 > Android开发

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

2016-03-11 20:56 561 查看
今天遇到一个挺奇怪的问题,简单说一下,我一个布局中,上面使用的是一个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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: