Was ich versuche zu tun: Ich versuche, das Wischen im Pager programmgesteuert zu aktivieren / deaktivieren, wenn das Programm ausgeführt wird
Beispiel: Wenn ich im Flowtrue
bin,wenn ich nach einer Bedingungsucheund wenn sie zurückgibt,aktivieren Sie das Wischen, und wenn die Bedingung zurückgibt,false
deaktivieren Sie das Wischen.
Die Lösung, die ich benutze, ist diese
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;
} }
Wählen Sie dann diesen anstelle des in XML integrierten Viewpagers aus
<mypackage.CustomViewPager
android:id="@+id/myViewPager"
android:layout_height="match_parent"
android:layout_width="match_parent" />
Sie müssen nur die "setPagingEnabled" -Methode mit "false" aufrufen, und Benutzer können nicht zum Paginieren wischen.
Problem mit der obigen Methodik: Ich kann die Eigenschaft nicht für den Flow festlegen, I: e .... Ich kann entweder das Wischen aktivieren oder das Wischen deaktivieren. Aber ich kann dies nicht basierend auf der Bedingung tun
Frage:
- Kann ich mein Ziel auf andere Weise erreichen, wenn ja, was ist es?
- Oder ist das nicht möglich?