Как отобразить различные макеты ячеек с асинхронным обновлением текста и изображений? - PullRequest
1 голос
/ 25 июля 2011

Я работаю над приложением удаленного управления для системы домашней автоматизации.Мобильное устройство и устройство домашней автоматизации обмениваются данными через WebSockets.

Чтобы отобразить функции устройства автоматизации, в настоящее время я использую ListViews и адаптеры с различным расположением ячеек.Один адаптер отображает все функции устройства.

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

Обратите внимание:

  • Существует около 20 различных типов функций, каждый из которых требует разного расположения ячеек.Существуют ползунки, кнопки, текст состояния, ...
  • Функции имеют асинхронно обновляемые состояния.

Мне нужно найти способ отображения этих функций в ListView или ListView.макет.

Можете ли вы помочь мне?

1 Ответ

1 голос
/ 25 июля 2011

Убедитесь, что реализован BaseAdapter.getViewTypeCount (), который должен возвращать счетчик для числа различных типов представлений, которые ваш listView должен иметь для своих записей.

А также реализуйте ListAdapter.getItemViewType (int position), чтобы возвращать int, который идентифицирует конкретное представление и тип его представления.

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

Тем не менее, если у вас есть несколько фиксированных номеров в вашем списке, и они все разные, то рассмотрите возможность использования LinearLayout в ScrollView.

...