Ho una ListView
in un ScrollView
per mostrare i commenti e mi piacerebbe fare quanto segue:Passo al genitore Scrollview quando ListView sopra/sotto
Quando l'utente fa scorrere verso il basso, in primo luogo il ScrollView
dovrebbe completamente scorrimento giù come l'elenco è in fondo. Una volta inattivo, lo Listiew
dovrebbe iniziare a scorrere.
Analogamente, quando l'utente sta scorrendo verso l'alto, prima lo ListView
(ordine invertito qui!) Dovrebbe scorrere verso l'alto, prima che lo ScrollView
inizi a scorrere.
Finora ho fatto quanto segue:
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;
}
});
I registri innescano al momento giusto, ma il ScrollView
non si muove anche se torno falso.
Ho anche provato ad aggiungere v.getParent().requestDisallowInterceptTouchEvent(false);
alle istruzioni, ma anche questo non ha funzionato.
Come posso farlo funzionare?
Ho provato a fare questo (nidificazione un controllo ListView nel mio ScrollView) e non ho potuto farlo funzionare. Ho finito con l'utilizzo di due NestedScrollView – PeonProgrammer
Ho esaminato anche la classe NestedScrollView, ma come indicato su altri thread le visualizzazioni di listino hanno alcune funzioni aggiuntive rispetto ad esempio a LinearLayout all'interno di una scrollview – Gooey
Generalmente raccomanderei l'uso di una vista di intestazione in un ListView, invece di nidificare un ListView all'interno di una ScrollView - I contenitori scroll interconnessi pre-RecyclerView sono piuttosto dolorosi. –