我有一个垂直的ViewPager实现,它包含3个片段。在中间和底部片段中,我添加了另一个普通的ViewPagers。到目前为止一切正常,即向左/向右滑动触发水平ViewPager页面更改和向上/向下滑动触发垂直ViewPager页面更改。现在我需要进行一些更改,以便在中间ViewPager上向左/向右滑动也应该触发底部ViewPager上的左/右滑动和反之。
我需要在此处传递Scroll功能的参数,以便根据用户与触摸式熨平板的交互进行转换。我已经看到" viewPager3.setCurrentItem(position)"导致ViewPagers中的Scroll突然触发。我需要用户非常慢地更改页面或再次返回同一页面的情况。
答案 0 :(得分:1)
尝试这样的解决方案:
mFirstViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
mSecondViewPager.scrollTo(mFirstViewPager.getScrollX(), 0);
}
@Override
public void onPageSelected(int position) {}
@Override
public void onPageScrollStateChanged(int state) {
if (state == ViewPager.SCROLL_STATE_IDLE) {
mSecondViewPager.setCurrentItem(mFirstViewPager.getCurrentItem(), false);
}
}
});
答案 1 :(得分:0)
你可以这样做:
viewPager1.setOnTouchListener(new OnTouchListener(){
public boolean onTouch (View v, MotionEvent event){
viewPager2.onTouchEvent(event);
return false;
}
});