NestedScrollView嵌套EditText会导致软键盘弹出后输入框没有跟随变动,出现软键盘遮盖输入框,输入文字也无法定位,文字换行也不会跟随向上滚动的问题。
网上查询大多是这种配置
1、在AndroidManifest中加属性
android:windowSoftInputMode="adjustResize"
2、在xml的最外层加属性
android:fitsSystemWindows="true"
坏消息:这样,如果最外层是LinearLayout,软键盘弹出时会发现输入框滚动到布局顶部后就不动了,如果输入框过长,还是会导致光标被遮挡。如果最外层是ConstraintLayout,那布局可能都不会动。
好消息:软键盘弹出后手动输入内容后会把光标位置顶起来,换行也可以自动滚动布局。
解决方法就是在这个基础上,监听软键盘弹出,等弹出时获取当前输入框,执行输入框的bringPointIntoView方法,传入输入框的光标位置,就可以正常顶到光标位置了。
editText.bringPointIntoView(editText.selectionStart)//输入框滚动到光标位置
各种尝试中我看到了这篇文章一步步解决NestedScrollView嵌套EditText的冲突