Mainfest中activity的windowSoftInputMode属性

原文链接:https://www.cnblogs.com/Joanna-Yan/p/4505379.html

在mainfest.xml中,在和导航栏相关的activity中加:

 <activity
            android:name=".filing.MainActivity"
            android:windowSoftInputMode="adjustResize|stateHidden"

             />

windowSoftInputMode 属性解释:

活动的主窗口如何与包含屏幕上的软键盘窗口交互。这个属性的设置将会影响两件事情:

1.软键盘的状态——是否它是隐藏或显示——当活动(Activity)成为用户关注的焦点。

2.活动的主窗口调整——是否减少活动主窗口大小以便腾出空间放软键盘或是否当活动窗口的部分被

软键盘覆盖时它的内容的当前焦点是可见的。

 

在这设置的值(除"stateUnspecified"和"adjustUnspecified"以外)将覆盖在主题中设置的值

它的设置必须是下面列表中的一个值,或一个”state…”值加一个”adjust…”值的组合。

各值的含义:

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

【B】stateUnchanged:当这个activity出现时,软键盘将一直保持在上一个activity里的状态,无论是隐藏还是显示
        这个属性是代表上个界面软件盘的属性是什么样的,到了新的界面软件盘的属性不变
【C】stateHidden:用户选择activity时,软键盘总是被隐藏

        设置为这个属性的时候,当跳转的时候,软键盘会被隐藏,但是如果是执行销毁这个Activity则软键盘会保留当前的状态

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

        设置为这个属性的时候,不论是Intent跳转或者是销毁了这个Activity软键盘都会被关闭

【E】stateVisible:软键盘通常是可见的
        显示软键盘的属性一般不会用到,如果要一直显示的话最好用下面的 stateAlwaysVisible属性
【F】stateAlwaysVisible:用户选择activity时,软键盘总是显示的状态
        一般长期显示软键盘不会被用到,如果用到的话就用这个 stateAlwaysVisible属性比较好,没有进行对比
【G】adjustUnspecified:默认设置,通常由系统自行决定是隐藏还是显示

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

         当EditText是在ScrollView中的时候用adjustResize会将ScrollView中的整体向上移动,并不会影响顶部布局,如果EditText    

        没有在ScrollView中的时候,设置为adjustResize的时候依然会将EditText覆盖

        但是当设置为adjustPan的时候不论EditText是不是在ScrollView中,都会将整体布局向上推动,会影响顶部的头布局,

        所以需要根据需求设置Activity中的属性

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

        不论EditText的父布局是怎样的,当获取焦点的时候都会将整体的布局向上移动,知道EditText可以被看到输入的内容的位置



猜你喜欢

转载自blog.csdn.net/u013802387/article/details/80116238
今日推荐