ViewPager在空白区域内触摸闪烁

时间:2013-09-25 08:00:14

标签: android android-viewpager flicker

  • 我有一个视图中的场景ViewPager用于显示多个描述列数的片段
  • 现在在平板电脑中,当视图寻呼机内只有两个页面/列时,视图寻呼机在视图寻呼机占据平板电脑的全屏后两个页面中仍然存在空白区域。
  • 当用户触摸此空白区域时,其余页面开始在屏幕中来回滚动闪烁。
  • 如何限制用户在这个空白区域进行触摸?我还需要允许用户滑动页面进行滚动,以及如何管理这两个场景。

1 个答案:

答案 0 :(得分:3)

我刚才有同样的情景。我的解决方案是当显示的页面少于填充viewpager所需的页面时消耗触摸事件

viewPager.setOnTouchListener(new View.OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            requestDisallowInterceptTouchEvent(true); // not sure if this is required
            PagerAdapter adapter = viewPager.getAdapter();
            // consume the move event if we have only one page full - removes flickering artifact
            // getNumberOfPagesOnScreen() is a mehtod we have to get the number of pages we are going to display. ymmv
            if (adapter.getCount() <= adapter.getNumberOfPagesOnScreen() && event.getAction() == MotionEvent.ACTION_MOVE) {
                return true;
            } else {
                return false;
            }
        }
    });