软件盘遮挡edittext - baodinglaolang/zhishiku GitHub Wiki

在Activity中设置:Android:windowSoftInputMode="stateUnspecified", 默认设置:软键盘的状态(隐藏或可见)没有被指定。系统将选择一个合适的状态或依赖于主题的设置。

"stateUnchanged", 软键盘被保持上次的状态。 "stateHidden", 当用户选择该Activity时,软键盘被隐藏。
"stateAlwaysHidden", 软键盘总是被隐藏的。 "stateVisible",. 软键盘是可见的。
"stateAlwaysVisible", 当用户选择这个Activity时,软键盘是可见的。 "adjustResize", (压缩模式) 当软键盘弹出时,要对主窗口调整屏幕的大小以便留出软键盘的空间。 "adjustPan" (平移模式:当输入框不会被遮挡时,该模式没有对布局进行调整,然而当输入框将要被遮挡时, 窗口就会进行平移。也就是说,该模式始终是保持输入框为可见。(键盘遮挡使用这种方法就能解决了!)

解决遮挡问题主要靠 adjustResize、adjustPan这两个 adjustResize会压缩当前layout,你的布局可能会被挤扁,而且有一个BUG就是多次弹出键盘后,此压缩效果失效 adjustPan 这个会平移窗口,但同样会有如上的BUG

最终解决方案:ScrollView + stateUnspecified,每次都会将窗口平移,并可手动移动窗口位置