我有2个线性布局的视图寻呼机,它们占用相同数量的屏幕。我想这样做,以便如果用户在屏幕上的任何位置滑动,那么滑动应仅适用于较低的viewpager。我尝试增加触摸代表,但这没有用。
答案 0 :(得分:2)
嗯,你正在尝试一些有趣的东西!我建议为第二个viewpager创建一个CustomViewPager类,它可以有第一个viewPager的实例。
public class CustomViewPager extends ViewPager {
private ViewPager firstViewPager;
public CustomViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
this.enabled = true;
}
@Override
public boolean onTouchEvent(MotionEvent event) {
if(firstViewPager!=null){
firstViewPager.onTouchEvent(event);
}
return super.onTouchEvent(event);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
if(firstViewPager!=null){
firstViewPager.onInterceptTouchEvent(event);
}
return super.onInterceptTouchEvent(event);
}
public void setFirstViewPager(ViewPager firstViewPager) {
this.firstViewPager = firstViewPager;
}
}
在此,您将第二个viewpager的onTouchEvent
和onInterceptTouchEvent
中获得的动作事件传递给第一个viewpager。您还需要禁用第1个viewpager上的滑动,您可以按照here所述进行滑动。