原文地址
http://www.androidchina.net/6654.html
再原文基础上,编写测试代码,方便理解各种状态的效果
本文的demo效果以及参考代码:http://download.csdn.net/detail/u010064206/9886921
**
效果需要自己看代码和跑一下apk感受一下
**
adjustPan
(不好适配)
Activity的主窗口并不会重新调整大小来为输入法腾出空间,而是窗口的内容会自动上下晃动来保证当前获得焦点的控件不会被键盘遮挡住,
然后用户可以看见自己输入的内容。
相比于 adjustResize 模式而言,它并不是很令人满意,
因为用户必须关闭输入法来和被输入法遮挡住的控件进行交互。
adjustResize
(配合scrollview可以适配)
Activity的主窗口会重新调整大小来为输入法腾出空间。
adjustUnspecified
(配合scrollview可以适配)
根据内容是否滑动选择 adjustPan(内容不支持滑动) 或者 adjustResize(内容支持滑动)
当前模式并不会明确指定 Activity 使用adjustPan 或者 adjustResize ,
系统会自动选择一个模式,选择结果是,如果当前 Activity 的 Window 中,
有可以滚动自身内容的控件,比如 ScrollView,那么选择结果就是 adjustResize,
因为它认为滚动可以使 Window 中的内容即使在一个很小的区域中也可以被看见。
Activity 的默认模式就是这个模式。
输入法软键盘显示控制系列:
stateUnspecified
系统根据当前具体情况,选择相应的模式。
stateUnchanged
软键盘保持它的上一个状态(上一个Activity 或者 Dialog 在屏幕最前端时,软键盘的状态),
不做变化,不管上一个状态是显示还是隐藏。
stateHidden
(进入activity时,软键盘总是被隐藏,但是点击editview之类的控件,可以显示键盘)
当用户主动进入当前界面时,软键盘隐藏。离开上一个 界面,返回当前界面,不能算作 “主动进入”。被动进入时,保持上一个状态。
stateAlwaysHidden
(无论返回到activity 或者进入 Activity, 都隐藏)
只要是用户进入该界面,就隐藏软键盘,不管是主动进入(新启动该界面),还是被动进入(离开上一个界面,返回到当前界面)。
stateVisible
当用户主动进入当前界面时, 显示软键盘。离开上一个 界面,返回当前界面,不能算作 “主动进入”。被动进入时,保持上一个状态。
stateAlwaysVisible
只要是用户进入该界面,就显示软键盘,不管是主动进入(新启动该界面),还是被动进入(离开上一个界面,返回到当前界面)。
stateHidden 和 stateAlwaysHidden 一对
stateVisible 和 stateAlwaysVisible 一对