SwipeRefreshLayout + ViewPager, nur horizontales Scrollen einschränken?
Ich habe implementiertSwipeRefreshLayout
undViewPager
in meiner App gibt es aber ein großes Problem: Wenn ich nach links oder rechts wische, um zwischen den Seiten zu wechseln, ist das Scrollen zu empfindlich. Ein kleiner Wisch nach unten löst das @ aSwipeRefreshLayout
auch aktualisieren.
Ich möchte einen Grenzwert festlegen, bis zu dem das horizontale Wischen beginnt, und dann nur das horizontale Wischen erzwingen, bis das Wischen beendet ist. Mit anderen Worten, ich möchte das vertikale Wischen abbrechen, wenn sich der Finger horizontal bewegt.
Dieses Problem tritt nur bei @ aViewPager
, wenn ich nach unten wische undSwipeRefreshLayout
Refresh-Funktion wird ausgelöst (der Balken wird angezeigt) und dann bewege ich meinen Finger horizontal, es sind immer noch nur vertikale Wischbewegungen möglich.
Ich habe versucht, das @ zu verlängeViewPager
Klasse, aber es funktioniert überhaupt nicht:
public class CustomViewPager extends ViewPager {
public CustomViewPager(Context ctx, AttributeSet attrs) {
super(ctx, attrs);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
boolean in = super.onInterceptTouchEvent(ev);
if (in) {
getParent().requestDisallowInterceptTouchEvent(true);
this.requestDisallowInterceptTouchEvent(true);
}
return false;
}
}
Layout xml:
<android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/viewTopic"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.myapp.listloader.foundation.CustomViewPager
android:id="@+id/topicViewPager"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</android.support.v4.widget.SwipeRefreshLayout>
Jede Hilfe wäre dankbar, danke