ScrollView中存在EditText,焦点变化引发自动滚动

2020-07-01  本文已影响0人  不是作家ssssss

经常遇到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;

        });

这样就会捕获焦点,阻止了页面的滑动,很好的解决了问题。

上一篇 下一篇

猜你喜欢

热点阅读