关于软键盘的顶起底部内容的问题
今天在做一个需要输入很多内容的界面的时候出现了一些小问题
目标是:点击输入框的时候,弹出的软键盘能把界面往上顶,让软键盘上面就是正在输入的输入框
出现的问题:在软键盘改变了布局的时候,底部的内容跟着软键盘往上移动了,刚好挡住了输入框
思路1:能否让底部的布局不受系统软键盘影响
做法:在底部内容上添加了
android:fitsSystemWindows="false"
意思是让底部的view不受系统UI影响
结果:并没有什么效果
原因:https://blog.****.net/smileiam/article/details/69055963
需要在沉浸式的界面中,并且我仅知道这个语句在为“true”的时候,是计算系统UI的大小并给view添加一个padding
至于“false”是不是不计算系统UI大小 并可以与系统UI(软键盘)重叠只是我的猜测。同时软键盘是否算系统UI这个我也是猜着他是而已
思路2:让界面的所有布局都不受软键盘弹起影响
这个思路与想要实现的效果有冲突,所以打算在这个情况叠加手动让输入框,移动到软键盘上方
结果想着想着,就看到了一个和我情况基本相同的老哥
https://blog.****.net/wayne214/article/details/83824065
看到里面提到的属性(adjustPan),明显就是让整个界面不会随着软件盘调整的参数
想着这个老哥可能思路和我类似就了解了一下另外一个属性(stateAlwaysHidden)的意思
https://blog.****.net/Rodulf/article/details/84575595
结果发现我对 adjusPan 这个属性有误解
这个属性是让固定的界面不调整,而滚动的界面一样会随着软键盘调整(例如:scrollview)
而意味着完全不调整的属性是 adjustNothing
stateAlwaysHidden的意思是 进入界面的时候不主动弹出软键盘
所以这个问题在manifest里面对着activity添加
android:windowSoftInputMode="stateAlwaysHidden|adjustPan"
这个语句就解决了,(stateAlwaysHidden)没关系