mam ListView
w ScrollView
, aby wyświetlić komentarze i chciałbym aby wykonać następujące czynności:Przełęcz wydarzenie ruch do macierzystej Scrollview kiedy ListView w górnej/dolnej
Gdy użytkownik przejeżdża w dół, najpierw ScrollView
powinien całkowicie przewijania w dół, ponieważ lista znajduje się na dole. Po całkowitym wyłączeniu, urządzenie Listiew
powinno rozpocząć przewijanie.
Podobnie, gdy użytkownik przewija w górę, najpierw ListView
(kolejność tutaj odwrócona!) Powinien przewinąć w górę, zanim rozpocznie się przewijanie ScrollView
.
tej pory zrobiłem, co następuje:
listView.setOnTouchListener(new View.OnTouchListener() {
// Setting on Touch Listener for handling the touch inside ScrollView
@Override
public boolean onTouch(View v, MotionEvent event) {
// If going up but the list is already at up, return false indicating we did not consume it.
if(event.getAction() == MotionEvent.ACTION_UP) {
if (listView.getChildCount() == 0 && listView.getChildAt(0).getTop() == 0) {
Log.e("Listview", "At top!");
return false;
}
}
// Similar behaviour but when going down check if we are at the bottom.
if(event.getAction() == MotionEvent.ACTION_DOWN) {
if (listView.getLastVisiblePosition() == listView.getAdapter().getCount() - 1 &&
listView.getChildAt(listView.getChildCount() - 1).getBottom() <= listView.getHeight()) {
Log.e("Listview","At bottom!");
v.getParent().requestDisallowInterceptTouchEvent(false);
return false;
}
}
v.getParent().requestDisallowInterceptTouchEvent(true);
return false;
}
});
Dzienniki wyzwolić w odpowiednim momencie, jednak ScrollView
nie ruszy chociaż return false.
Próbowałem również dodać v.getParent().requestDisallowInterceptTouchEvent(false);
do instrukcji, ale to też nie działało.
Jak mogę to sprawić?
Próbowałem to zrobić (zagnieżdżanie listview w moim Scrollview) i nie mogę zmusić go do pracy. Skończyło się na użyciu dwóch NestedScrollView – PeonProgrammer
Spojrzałem również na klasę NestedScrollView, ale jak wskazano w innych wątkach, odsyłacze mają pewne dodatkowe funkcje, na przykład LinearLayout wewnątrz przewijania – Gooey
Ogólnie polecam używanie widoku nagłówka w ListView, zamiast tego zagnieżdżania ListView wewnątrz ScrollView - Zagnieżdżone kontenery przewijania pre-RecyclerView są dość bolesne. –