我正在尝试使用其屏幕的模块化部分(包含各种非顺序片段)进行单个活动。
但是,使用ViewPager允许用户随意滚动浏览所有这些片段。我想对其进行设置,以便仅当用户单击活动的固定部分或另一个片段中的按钮时,才能查看和访问片段。这可能吗?
获得这种效果的最佳方法是什么?
答案 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;
}
}