在空白区域内触摸时的ViewPager Flickers

Jav*_*nda 5 android flicker android-viewpager

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

小智 6

我只是有同样的场景。我的解决方案是在显示的页面少于填充 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;
            }
        }
    });
Run Code Online (Sandbox Code Playgroud)