Большой ListView в Android - PullRequest
       15

Большой ListView в Android

6 голосов
/ 24 февраля 2011

Создание словарного приложения. Мне нужно ListView, которое показывает более 100 тыс. Элементов. Я хочу позволить пользователю прокручивать столько, сколько нужно.

Как лучше всего искать и показывать слова?
Можно ли показывать 150 000 слов в ListView (для ознакомления)? Если нет, то как добавить 100 других слов после того, как пользователь достигнет конца списка?

В настоящее время я показываю 50 слов предыдущего и 50 слов следующего искомого слова.

Спасибо.

Ответы [ 3 ]

9 голосов
/ 25 февраля 2011

(второй ответ в ответ на разъяснение о производительности)

Существуют различные способы сделать это в зависимости от того, где находятся ваши данные.

Лучший способ - этохраните свои данные в базе данных sqlite и используйте CursorAdapter .Затем Android управляет извлечением ваших данных и не будет извлекать данные, которые в данный момент не отображаются на экране.

Если ваши слова находятся в массиве в памяти, попробуйте ArrayAdapter или SimpleAdapter .

Интерфейс адаптера, от которого наследуются все вышеперечисленные классы, предназначен для обеспечения хорошей производительности ListView независимо от количества объектов в списке.

2 голосов
/ 24 февраля 2011

Одним из встроенных способов быстрой прокрутки является большой палец с быстрой прокруткой.В xml установите:

android:fastScrollEnabled="true"

в ListView или попробуйте:

listView.setFastScrollEnabled(true)
listView.setFastScrollAlwaysVisible(true)
0 голосов
/ 26 июня 2016

RecyclerView очень хорош для этого.Я разработал библиотеку с открытым исходным кодом, специально предназначенную для прокрутки большого списка с предельной скоростью.Фактически он может перемещаться со скоростью более 1000 элементов в секунду как в одной, так и в нескольких колонках. Вы можете ознакомиться с репо здесь: https://bitbucket.org/warwick/hgfastlist или вы можете проверить версию OpenGL здесь: https://bitbucket.org/warwick/hgglfastlist. Здесьдемонстрационное видео на Youtube: https://www.youtube.com/watch?v=oz7aeAlOHBA&feature=youtu.be Даже если вы не хотите использовать эту библиотеку, в демонстрационном приложении есть множество кода для чтения, который даст вам хорошие идеи.

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