SwipeRefreshLayout + ViewPager, ¿limita solo el desplazamiento horizontal?

He implementadoSwipeRefreshLayout yViewPager en mi aplicación, pero hay un gran problema: cada vez que voy a deslizar hacia la izquierda / derecha para cambiar de página, el desplazamiento es demasiado sensible. Un pequeño deslizamiento hacia abajo activará elSwipeRefreshLayout actualizar también.

Quiero establecer un límite para cuando comience el deslizamiento horizontal, luego forzar horizontalmente solo hasta que termine el deslizamiento. En otras palabras, quiero cancelar el deslizamiento vertical cuando el dedo se mueve horizontalmente.

Este problema solo ocurre enViewPager, si deslizo hacia abajo ySwipeRefreshLayout se activa la función de actualización (se muestra la barra) y luego muevo el dedo horizontalmente, todavía solo permite deslizamientos verticales.

He tratado de extender elViewPager clase pero no funciona en absoluto:

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;
    }

}

Diseño 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>

Cualquier ayuda será apreciada, gracias

Respuestas a la pregunta(7)

Su respuesta a la pregunta