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

所以要监听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是子控件
网友评论