Android 多视图寻呼机触摸事件
我在一个活动中有两个ViewPager,我希望当我滑动其中任何一个时,它们同步移动 例如,在右方向滑动Viewpager 1时,Viewpager 2显示也向右方向移动 以下是我的触控事件代码:Android 多视图寻呼机触摸事件,android,android-viewpager,Android,Android Viewpager,我在一个活动中有两个ViewPager,我希望当我滑动其中任何一个时,它们同步移动 例如,在右方向滑动Viewpager 1时,Viewpager 2显示也向右方向移动 以下是我的触控事件代码: viewPager2.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) {
viewPager2.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
viewPager1.onTouchEvent(event);
return false;
}
});
viewPager1.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
viewPager2.onTouchEvent(event);
return false;
}
});
现在,代码仅在Viewpager1的情况下起作用,即在滑动Viewpager1时,ViewPager2也朝同一方向移动,但当我滑动ViewPager2时,Viewpager1不移动
我需要帮助。提前感谢。使用
OnPageChangeListener
:
viewPager1.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
viewPager2.setCurrentItem(position);
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
viewPager2.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
viewPager1.setCurrentItem(position);
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
在页面ChangeListener上使用
viewPager1.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
viewPager2.setCurrentItem(position);
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
viewPager2.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
viewPager1.setCurrentItem(position);
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
您需要使用
的addOnPageChangeListener
来处理用户在ViewPager上滑动时发生的事件
添加一个侦听器,该侦听器将在页面更改或增量滚动时调用
您需要使用
的addOnPageChangeListener
来处理用户在ViewPager上滑动时发生的事件
添加一个侦听器,该侦听器将在页面更改或增量滚动时调用
谢谢你,迈克尔。干杯如果答案对你有帮助,请接受@DineshSinghThank you Micheal。干杯如果答案对您有帮助,请接受@dineshsingh这将不会获得所需的结果,因为当页面处于运动状态时调用onPageScrolled,而不是当页面快速进入位置时调用onPageScrolled。这将不会获得所需的结果,因为当页面处于运动状态时调用onPageScrolled,而不是当页面快速进入位置时调用onPageScrolled