- 我有一个情景,使用ViewPager来显示多个代表列数的片段。
- 现在在平板电脑上,当ViewPager中只有两页/两列时,ViewPager后面会留下空白区域,因为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;
}
}
});