美文网首页
监听ScrollView中的子控件是否可见

监听ScrollView中的子控件是否可见

作者: 坑逼的严 | 来源:发表于2019-08-29 17:04 被阅读0次

ScrollView是我们常用的,他也可能嵌套我们的滑动控件,比如RecyclerView,所以会造成滑动卡顿问题,解决方法是ScrollView换成NestedScrollView,,然后在RecyclerView中添加android:descendantFocusability="blocksDescendants"即可解决。

好了,言归正传

需求是这样的,如图:


1567069910068.gif

所以要监听NestedScrollView里面的子控件是否已划出界面

 @Override
    public void onScrollChange(NestedScrollView nestedScrollView, int i, int i1, int i2, int i3) {
        Rect scrollRect = new Rect();
        nestedScrollView.getHitRect(scrollRect);
        //子控件在可视范围内(至少有一个像素在可视范围内)
        if (mVisibleView.getLocalVisibleRect(scrollRect)) {
        } else {
            ////子控件完全不在可视范围内
        }
    }

其中mVisibleView是子控件

相关文章

网友评论

      本文标题:监听ScrollView中的子控件是否可见

      本文链接:https://www.haomeiwen.com/subject/hstwectx.html