欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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表示已经滚动到顶部。