Android中windowSoftInputMode的配置与软键盘状态
Android中windowSoftInputMode的配置与软键盘状态
在manifest文件中可对Activity进行android:windowSoftInputMode=""的配置,该配置项决定了进入该界面后软键盘的弹出状态,一共有10种状态。
state配置决定了是否显示软键盘。
adjust配置决定了显示软键盘时如何调整界面布局。
1. stateUnspecified
android:windowSoftInputMode="stateUnspecified"
未指定:这是Activity的默认状态,系统根据界面元素决定是否弹出软键盘。
当界面包含EditText等获取了焦点的输入控件,不包含RecyclerView、ScrollView等可滚动控件时,默认不弹出软键盘。
当界面包含EditText等获取了焦点的输入控件,也有滚动需求的控件时,默认弹出软键盘。
2. stateUnchanged
android:windowSoftInputMode="stateUnchanged"
保持原有状态:本界面软键盘的状态和上游界面离开时软键盘状态一致。上游界面有本界面就展示软键盘,上游界面没有则本界面不展示软键盘。
3. stateVisible
android:windowSoftInputMode="stateVisible"
显示软键盘:不管是否有输入控件和焦点,首次进入该界面都强制显示软键盘。但当栈顶页面主动隐藏软键盘,出栈回到本界面时本界面不会显示软键盘。
4. stateHidden
android:windowSoftInputMode="stateHidden"
隐藏软键盘:不论上一个界面是否显示软键盘,首次进入到本界面时一律不显示,但点击输入框仍然会显示软键盘。当栈顶界面显示软键盘,出栈后本界面仍然会显示软键盘
5. stateAlwaysVisible
android:windowSoftInputMode="stateAlwaysVisible"
总是显示软键盘:和stateVisible类似,但不论什么情况回到本界面时都会显示软键盘。
6. stateAlwaysHidden
android:windowSoftInputMode="stateAlwaysHidden"
总是隐藏软键盘:和stateHidden类似,不论什么情况回到本界面都不会显示软键盘。
7. adjustUnspecified
android:windowSoftInputMode="stateAlwaysVisible|adjustUnspecified"
默认配置:界面有可滚动控件时,优先收缩可滚动控件,为软键盘和焦点输入框都显示出来。
当没有可滚动控件时,屏幕会隐藏部分顶部控件,软键盘会覆盖一部分底部控件,确保软键盘和焦点输入框都在屏幕中。
8. adjustResize
android:windowSoftInputMode="stateAlwaysVisible|adjustResize"
调整大小:当界面有可滚动控件时,和默认配置一样。
当没有可滚动控件时,系统会重新调整布局,在保证屏幕中能显示软键盘和焦点输入框的同时会压缩一部分控件,让尽可能多的控件显示出来。
9. adjustPan
android:windowSoftInputMode="stateAlwaysVisible|adjustPan"
移动布局:系统会移动decorview,保证屏幕中能显示显示软键盘和焦点输入框。
10. adjustNothing
android:windowSoftInputMode="stateAlwaysVisible|adjustNothing"
不调整布局,直接显示软键盘,有可能覆盖了软键盘输入框。
本文地址:https://blog.csdn.net/d0d0bird/article/details/108716303
推荐阅读
-
Android中WebView的基本配置与填坑记录大全
-
Android Manifest中meta-data扩展元素数据的配置与获取方式
-
理解与配置Android studio中的gradle
-
Android中windowSoftInputMode的配置与软键盘状态
-
Android Manifest中meta-data扩展元素数据的配置与获取方式
-
Android中WebView的基本配置与填坑记录大全
-
android开发中,监听软键盘的状态(收起或者打开)
-
解析android中隐藏与显示软键盘及不自动弹出键盘的实现方法
-
Android中windowSoftInputMode的配置与软键盘状态
-
Android中软键盘的设置与状态监听