Я имею в ScrollView
ListView
, чтобы показать комментарии, и я хотел бы сделать следующее:Pass событие движения к родительскому Scrollview когда Listview сверху/снизу
Когда пользователь пойло вниз, сначала ScrollView
должен полностью прокрутки вниз, поскольку список находится внизу. Когда он полностью опущен, начнется прокрутка Listiew
.
Аналогичным образом, когда пользователь прокручивается вверх, сначала ListView
(здесь обратный здесь!) Должен прокручиваться вверх, прежде чем начнется прокрутка ScrollView
.
До сих пор я сделал следующее:
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;
}
});
Бревна вызвать в нужный момент, однако ScrollView
не будет двигаться, даже если я вернусь ложным.
Я также попытался добавить v.getParent().requestDisallowInterceptTouchEvent(false);
к утверждениям, но это тоже не сработало.
Как я могу заставить его работать?
Я пытался сделать это (гнездящихся в ListView в моей Scrollview), и я не мог заставить его работать. Я закончил использование двух NestedScrollView – PeonProgrammer
. Я также посмотрел на класс NestedScrollView, но, как указано в других разделах, в списках просмотров есть некоторые дополнительные функции, например LinearLayout внутри scrollview – Gooey
Обычно я бы рекомендовал использовать представление заголовка в ListView, вместо этого вложенности ListView внутри ScrollView - вложенные контейнеры прокрутки pre-RecyclerView несколько болезненны. –