Другой способ сделать это - обернуть ListView
в любое пользовательское решение прокрутки, которое вы приготовили. Если вы просто установите высоту ListView
точно такой же, как и все строки (используя LayoutParams
представления списка), тогда он будет действовать как обычный вид и не сможет прокручиваться; поэтому вы можете добавить его в другой вид прокрутки. Сложность этого метода заключается в том, что вам нужно знать высоту списка заранее, поэтому вам нужно знать высоту каждой строки. Кроме того, при этом будут созданы все строки одновременно, поэтому вы не сможете воспользоваться функцией повторного просмотра.
Если у вас нет простого способа рассчитать высоту заранее, вы можете обмануть ListView
, сделав это за вас, переопределив onMeasure
и присвоив ему свои собственные характеристики высоты:
// Calculate height of the entire list by providing a very large
// height hint. But do not use the highest 2 bits of this integer;
// those are reserved for the MeasureSpec mode.
int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);