Intereting Posts

Сколько элементов ListView может хранить?

Я новичок в программировании на Android. Интересно, сколько элементов ListView может хранить? Я ищу в документах, но они не говорят об этом. Что делать, если я добавлю много (может быть, 10k) элементов в ListAdapter, повлияет ли это на производительность?

Cheers, MK.

Solutions Collecting From Web of "Сколько элементов ListView может хранить?"

ListView виртуализирован в Android. Практически это означает, что нет фактического предела для количества элементов внутри него. Вы можете поместить миллионы строк в список, и он будет выделять память только для видимых в данный момент (или нескольких других вершин).

Ознакомьтесь с десятками руководств по написанию пользовательского класса Adapter для AdapterView (ListView расширяет это). Также проверьте сеанс Google I / O 2010 в ListViews; Это действительно полезно: здесь

Ограничений нет, поскольку ListView только отображает элементы, когда они появляются, и поэтому заботится только о данных для ListView, когда дело касается рендеринга элемента (хотя ему нужно знать количество элементов для правильной визуализации полосы прокрутки)

Видео Google IO действительно отлично подходит для изучения ListView http://www.youtube.com/watch?v=wDBM6wVEO70

Тем не менее, я бы спросил, стоит ли вам загружать много, так как ясно, что пользователь не может смотреть на них всех и прокручивать ListView с тем, что многие элементы будут очень утомительными. Если бы это был я, я бы задал несколько вопросов:

  • Должен ли список сначала отображать их ВСЕ? Может ли это показать самый подходящий набор? Ближайший / самый большой / наименьший / лучший / и т. Д.
  • Вместо того, чтобы загружать их все сразу, можете ли вы загружать блоки на страницах предметов? Так, например, вы сначала загружаете 10-100, а когда пользователь добирается до нижней части экрана «Loading more …» с пиктограммой прогресса, и тянет больше, тогда пользователь может выбрать, сколько загрузить и сколько Прокрутки, которые они готовы сделать
  • Должны ли вы создавать пользовательский интерфейс для фильтрации элементов, поэтому им не нужно смотреть на 10 000?

Подробнее о ListView http://www.softwarepassion.com/android-series-custom-listview-items-and-adapters/ http://developer.android.com/guide/topics/ui/binding.html http: // http://www.androidguys.com/2008/07/14/fancy-listviews-part-one/

Integer.MAX_VALUE так как большинство его функций будут ломаться, поскольку они полагаются на int position .

Я создал ListView и использовал Integer.MAX_VALUE как число, возвращаемое адаптеру для количества элементов в списке. Это не повлияло на производительность ListView, хотя в нем было около 2 миллиардов элементов.

Я думаю, 10k будет работать: P

Ознакомьтесь с моим ответом здесь, чтобы увидеть, что я имею в виду: как создать закрытый (круглый) ListView?

У вас есть предел памяти (который специфичен для устройства). Если вы не исчерпали свой лимит памяти, вы можете хранить как можно больше предметов. Существуют инструменты ADT, которые вы можете использовать для мониторинга того, сколько памяти ваше приложение использует в любой момент.