Как создать ListView, которого нет в ScrollView, или ScrollView отключен? - PullRequest
2 голосов
/ 10 марта 2010

Мне нужны некоторые вкусности в ListView, такие как возможность использования ListAdapter, выбор элементов и т. Д., Но я не хочу его часть ScrollView. Я хочу реализовать эту часть по-другому (почему или как я это делаю, на самом деле вопрос не в этом, поэтому, пожалуйста, не спрашивайте «почему»).

Есть ли способ создать ListView, которого нет в ScrollView или у которого отключена прокрутка?

Ответы [ 2 ]

6 голосов
/ 27 августа 2010

Другой способ сделать это - обернуть 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);
1 голос
/ 10 марта 2010

A ListView не входит в ScrollView. ListView выполняет прокрутку по своей природе. Я не верю, что вы можете отключить прокрутку через простой API. Если это так, вы можете выбрать подкласс ListView и попытаться найти способы переопределения режимов прокрутки, клонировать ListView и устранить способы прокрутки или написать свой собственный AdapterView, который отображает вещи так, как вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...