L'ho implementato SwipeRefreshLayout
e ViewPager
nella mia app, ma c'è un grosso problema: ogni volta che scorro a sinistra / destra per passare da una pagina all'altra, lo scorrimento è troppo sensibile. Un piccolo scorrimento verso il basso attiverà anche l' SwipeRefreshLayout
aggiornamento.
Voglio impostare un limite all'avvio dello scorrimento orizzontale, quindi forzare l'orizzontale solo fino al termine dello scorrimento. In altre parole, desidero annullare lo scorrimento verticale quando il dito si sposta in orizzontale.
Questo problema si verifica solo su ViewPager
, se scorro verso il basso e SwipeRefreshLayout
viene attivata la funzione di aggiornamento (viene visualizzata la barra) e poi sposto il dito in orizzontale, consente comunque solo lo scorrimento verticale.
Ho provato ad estendere la ViewPager
classe ma non funziona affatto:
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>
qualsiasi aiuto sarebbe apprezzato, grazie
SwipeRefreshLayout
?