将一个viewpager上的滑动设置为另一个

时间:2015-07-02 21:44:00

标签: android android-layout layout android-viewpager android-linearlayout

我有2个线性布局的视图寻呼机,它们占用相同数量的屏幕。我想这样做,以便如果用户在屏幕上的任何位置滑动,那么滑动应仅适用于较低的viewpager。我尝试增加触摸代表,但这没有用。

1 个答案:

答案 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的onTouchEventonInterceptTouchEvent中获得的动作事件传递给第一个viewpager。您还需要禁用第1个viewpager上的滑动,您可以按照here所述进行滑动。