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

Antworten auf die Frage(7)

Ihre Antwort auf die Frage