我想做什么:我正在尝试在程序运行时以编程方式启用/禁用页面切换。
例如:当进行流程时,如果我检查一个条件并且如果它返回true
则启用页面切换,如果条件返回false
则禁用页面切换。
我使用的解决方案是这个
public class CustomViewPager extends ViewPager {
private boolean enabled;
public CustomViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
this.enabled = true;
}
@Override
public boolean onTouchEvent(MotionEvent event) {
if (this.enabled) {
return super.onTouchEvent(event);
}
return false;
}
@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
if (this.enabled) {
return super.onInterceptTouchEvent(event);
}
return false;
}
public void setPagingEnabled(boolean enabled) {
this.enabled = enabled;
} }
然后在XML中选择它,而不是内置的viewpager。
<mypackage.CustomViewPager
android:id="@+id/myViewPager"
android:layout_height="match_parent"
android:layout_width="match_parent" />
只需要使用“setPagingEnabled”方法并将其设置为“false”,用户就不能通过滑动分页了。
上述方法的问题:我无法在流程中设置属性,即......我要么可以启用滑动,要么可以禁用滑动。但是我无法根据条件执行此操作
问题:
- 如果可以,在其他方式中如何实现我的目标?
- 还是不可能的?