片段之间的滚动效果而没有实际允许用户滚动?

时间:2019-03-29 20:48:16

标签: android kotlin

我正在尝试使用其屏幕的模块化部分(包含各种非顺序片段)进行单个活动。

但是,使用ViewPager允许用户随意滚动浏览所有这些片段。我想对其进行设置,以便仅当用户单击活动的固定部分或另一个片段中的按钮时,才能查看和访问片段。这可能吗?

获得这种效果的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

是的,可以子类ViewPager来拦截用户输入以禁用滚动。然后,您可以直接通过按钮控制ViewPager

public class CustomViewPager extends ViewPager {

    private boolean isPagingEnabled = true;

    public CustomViewPager(Context context) {
        super(context);
    }

    public CustomViewPager(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        return this.isPagingEnabled && super.onTouchEvent(event);
    }

    @Override
    public boolean onInterceptTouchEvent(MotionEvent event) {
        return this.isPagingEnabled && super.onInterceptTouchEvent(event);
    }

    public void setPagingEnabled(boolean b) {
        this.isPagingEnabled = b;
    }
}

取自https://stackoverflow.com/a/7814054/3106174