Mam podgląd stron iw jednym z fragmentów mam dwa osobne fragmenty zawierające odpowiednio pionowy i poziomy widok recyklingu.Wyłącz stronicowanie ViewPager, gdy widok recyklingu podrzędnego przewija do ostatniego elementu.
Kiedy przewijam poziomy widok recyklingu do ostatniego elementu i spróbuję przesunąć dalej, widok będzie przewijany do następnej strony. Nie chcę tego. Chcę wyłączyć stronicowanie strony podglądu, gdy próbuję przewyższyć poziomy widok recyklingu.
Nie chcę jednak wyłączać stronicowania strony podglądu, gdy przesuję palcem w inne miejsce. Na przykład, jeśli mam zamiar przesunąć pionowy widok recyklingu lub dowolne puste miejsce w segmencie nadrzędnym, to powinien on spowodować zmianę stron podglądu.
Czytam in this SO question, jak wyłączyć stronicowanie strony głównej. Również this SO question jest podobny pod tym względem, że istnieje przeglądarka podrzędna, jednak nie udało mi się powtórzyć tego z poziomym widokiem recyklingu.
Oto niektóre struktury:
Zwyczaj viewpager który pozwala mi wyłączyć stronicowania (wziął go od pierwszego SO odwołuje powyżej):
public class CustomViewPager extends ViewPager {
private boolean enabled;
public CustomViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
this.enabled = true;
}
@Override
public boolean onTouchEvent(MotionEvent event) {
if (this.enabled) {
return super.onTouchEvent(event);
}
return false;
}
@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
if (this.enabled) {
return super.onInterceptTouchEvent(event);
}
return false;
}
public void setPagingEnabled(boolean enabled) {
this.enabled = enabled;
} }
Dla recyclerview poziomej I ustawić ontouchlistener (podobny do sekundy SO odwołuje powyżej):
horizontalRecyclerView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch(event.getAction()){
case MotionEvent.ACTION_MOVE:
customViewPager.setPagingEnabled(false);
break;
case MotionEvent.ACTION_UP:
customViewPager.setPagingEnabled(true);
break;
}
return false;
}
});
Dodatkowe obserwacje: zauważyłem, że czasami jeśli długo naciśnij poziomy widok recyklingu, zanim go przeciągnę, nie przejdzie do następnej strony w oknie podglądu. Jeśli jednak szybko przeciągnę, przeglądarka wyświetli następną stronę.
Czy ktoś wie, jak to zrobić?
Każda pomoc jest doceniana.
znalezione rozwiązanie. Szukam tego samego –