经常遇到ScrollView中,存在EditText,当页面滑到底部做一个更新组件的操作时,界面会自动上滑到EditText位置。是因为这个时候焦点被EditText占用,布局自动定位到了它身上。还好在csdn上看到了一片文章,找到了解决方案,原文地址如下
https://blog.csdn.net/xiao_sier/article/details/106992752
下面大概讲述下解决方案:
在ScrollView滚动时,让ScrollView自动获取到焦点
scrollView.setDescendantFocusability(ViewGroup.FOCUS_BEFORE_DESCENDANTS);
scrollView.setFocusable(true);
scrollView.setFocusableInTouchMode(true);
scrollView.setOnTouchListener((v, event) -> {
v.requestFocusFromTouch();
return false;
});
这样就会捕获焦点,阻止了页面的滑动,很好的解决了问题。