首页 文章

如何在导航抽屉内使用视图寻呼机?

提问于
浏览
4

我'd like to have a view pager inside my navigation drawer to switch between two lists of options when the navigation drawer is open. I'也在使用ViewPagerIndicator .

我可以通过从屏幕左边向右滑动打开导航抽屉,我的视图寻呼机(和指示器)显示在导航抽屉中 .

但是:我只能通过点击视图寻呼机指示 Headers 来切换视图寻呼机的两个列表 . 如果我尝试通过滑动导航抽屉反映触摸事件而不是视图寻呼机来在视图寻呼机中显示的列表之间进行切换 .

如果导航抽屉在导航抽屉视图外面启动时,如何让导航抽屉仅使用滑动事件,以便视图寻呼机在导航抽屉内完全正常工作?

提前致谢!

迈克尔

1 回答

  • 2

    使用 View.onTouchListener 捕获 ViewPager 的触摸事件以禁止父级处理事件 .

    viewPager.setOnTouchListener(new onTouchListener() 
    {
        @Override
        public boolean onTouch(View v, MotionEvent event) 
        {
            int action = event.getAction();
            switch (action) 
            {
            case MotionEvent.ACTION_DOWN:
                // Disallow Drawer to intercept touch events.
                v.getParent().requestDisallowInterceptTouchEvent(true);
                break;
    
            case MotionEvent.ACTION_UP:
                // Allow Drawer to intercept touch events.
                v.getParent().requestDisallowInterceptTouchEvent(false);
                break;
            }
    
            // Handle viewPager touch events.
            v.onTouchEvent(event);
            return true;
        }
    });
    

相关问题