Ich habe ein ListView
in einem ScrollView
Kommentare zu zeigen, und ich möchte folgendes tun:Pass Bewegung Ereignis Mutterscroll wenn Listview oben/unten
Wenn der Benutzer klaut, indem Sie zuerst die ScrollView
sollte vollständig blättern unten, da die Liste unten ist. Sobald es ganz unten ist, sollte die Listiew
mit dem Scrollen beginnen.
In ähnlicher Weise, wenn der Benutzer scrollt, zuerst die ListView
(Bestellung hier umgekehrt!) Nach oben scrollen, bevor die ScrollView
beginnt Scrollen.
Bisher habe ich folgendes getan:
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;
}
});
Die Protokolle im richtigen Moment auslösen, aber die ScrollView
nicht einmal bewegen, obwohl ich falsch zurück.
Ich habe auch versucht, v.getParent().requestDisallowInterceptTouchEvent(false);
zu den Aussagen hinzuzufügen, aber das hat auch nicht funktioniert.
Wie kann ich es funktionieren lassen?
Ich habe versucht, dies zu tun (ein Listview in meinem Scroll nisten) und ich konnte es nicht zur Arbeit kommen. Ich habe am Ende zwei NestedScrollView – PeonProgrammer
Ich schaute auch auf die NestedScrollView-Klasse, aber wie auf andere Threads hingewiesen listviews haben einige zusätzliche Funktionen über zum Beispiel eine LinearLayout innerhalb einer scrollview – Gooey
Generell würde ich empfehlen, stattdessen eine Header-Ansicht in einer ListView Verschachteln einer ListView in einer ScrollView - verschachtelte Scroll-Container Pre-RecyclerView ist etwas schmerzhaft. –