www.cftea.com

安卓键盘弹出高级学习

ITPOW2018/7/19 19:28:37

一、页面中有一个 EditText

虽然有焦点,但是并不会自动弹出软键盘。

二、页面中有一个 EditText,还有一个 ScrollView

不管 EditText 是否在 ScrollView 中,都自动弹出软键盘。

不过如果 ScrollView gone 了,就不会自动弹出了。

三、页面中有一个 EditText,Activity 的 windowSoftInputMode 为 adjustResize

AndroidManifest.xml 中为 Activity 设置 android:windowSoftInputMode 为 adjustResize,则自动弹出软键盘。

但是如果是:adjustUnspecified、adjustNothing、adjustPan,则不会自动弹出。

四、stateUnchanged 是什么意思?

就是说之前软键盘是什么状态就是什么状态,如果软键盘弹出了,只要没关,Activity 之间跳来跳去,都不会影响软键盘的弹出状态,即使 Activity 内没有 EditText,它也是遵照之前的状态。

五、stateHidden、stateAlwaysHidden

stateHidden 是进入到一个 Activity 时,隐藏键盘;但是从别的 Activity 返回时,它就是遵照前一个 Activity 的键盘状态,这点特别注意。

stateAlwaysHidden 是进入、返回都隐藏。

相当于:

  • stateHidden 只管进入,不管返回,返回是遵照前一 Activity,相当于返回是 stateUnchanged。
  • stateAlwaysHidden 既管进入、又管返回,都隐藏。

再举例解释一下进入返回

  • 进入:APP 的第一个 Activity,或者被人用 startActivity 启动(不管此 Activity 之前是否存在,只要是被 startActivity 启动的,都算作进入)。
  • 返回:Activity1 启动了 Activity2,Activity2 调用 finish() 关闭自己,此时又显示 Activity1(),就是返回。


<<返回首页<<