转载请注明出处:http://blog.csdn.net/hjf_huangjinfu/article/details/61199480
Android 提供了 windowSoftInputMode 属性来控制输入法软键盘窗口和 Activity 主窗口的交互,分为 窗口尺寸调整系列 和 输入法软键盘显示控制系列。
窗口尺寸调整系列:
该系列参数用来控制当软键盘弹起时,Activity 主窗口的调整策略,因为如果不调整主窗口,很可能会导致当前输入的控件被软键盘遮挡。
adjustPan:
Activity的主窗口并不会重新调整大小来为输入法腾出空间,而是窗口的内容会自动上下晃动来保证当前获得焦点的控件不会被键盘遮挡住,然后用户可以看见自己输入的内容。相比于 adjustResize 模式而言,它并不是很令人满意,因为用户必须关闭输入法来和被输入法遮挡住的控件进行交互。
adjustResize:
Activity的主窗口会重新调整大小来为输入法腾出空间。
adjustUnspecified:
当前模式并不会明确指定 Activity 使用adjustPan 或者 adjustResize ,系统会自动选择一个模式,选择结果是,如果当前 Activity 的 Window 中,有可以滚动自身内容的控件,比如 ScrollView,那么选择结果就是 adjustResize,因为它认为滚动可以使 Window 中的内容即使在一个很小的区域中也可以被看见。Activity 的默认模式就是这个模式。
adjustNoting:
Activity 的 Window 没有任何变化。
两种模式下,屏幕 - 主窗口 - 主窗口内容 - 软键盘 的关系如下:
具体效果如下:
没有滚动内容,adjustPan: