requestDisallowInterceptTouchEvent处理滑动冲突,判断recycler是否滑动到底部
程序员文章站
2022-06-08 17:51:33
...
1.处理滑动冲突
getParent().requestDisallowInterceptTouchEvent(true);表示不允许父控件接收事件,子View自己处理。
getParent().requestDisallowInterceptTouchEvent(false);表示允许父控件接收事件,父View处理事件。
实例代码:
当用户按下或者移动的时候,我们告诉父组件,不要拦截我的事件(这个时候子组件是可以正常响应事件的),拿起之后就会告诉父组件可以阻止。
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_MOVE:
pager.requestDisallowInterceptTouchEvent(true);
break;
case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_CANCEL:
pager.requestDisallowInterceptTouchEvent(false);
break;
}
2.判断recyclerView是否滑动到底部
RecyclerView.canScrollVertically(1)的值表示是否向上滚动,false表示已经滚动到底部。
RecyclerView.canScrollVertically(-1)的值表示是否向下滚动,false表示已经滚动到顶部。