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