解決ViewPager的嵌套沖突事件

當內部Viewpager滑動到最后時再滑動會滑動父級的ViewPager,此時我們需要重寫ViewPager讓控件滑動沖突解決

      //作為子控件
 private PointF curr,down;
    @Override
    public boolean onTouchEvent(MotionEvent ev) {
        curr.x= ev.getX();
        curr.y= ev.getY();
        switch (ev.getAction())
        {
            case MotionEvent.ACTION_DOWN:
                down.x=ev.getX();
                down.y=ev.getY();

            case MotionEvent.ACTION_MOVE:
                getParent().requestDisallowInterceptTouchEvent(true);
                break;
            case MotionEvent.ACTION_CANCEL:
            case MotionEvent.ACTION_UP:
                getParent().requestDisallowInterceptTouchEvent(false);
                if(curr.x==down.x && curr.y==down.y)
                {
                    return  true;
                }
                break;
        }
        return super.onTouchEvent(ev);
    }


2. 
    
    //作為父控件,是否允許滾動
        @Override
        protected boolean canScroll(View v, boolean checkV, int dx, int x, int y) {
        //驗證當前可以滾動的控件不是當前控件并且也是一個ViewPager
        if(v!=this && v instanceof ViewPager)
          {
            return true;
          }
          return super.canScroll(v, checkV, dx, x, y);
        }
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容