Найти в Дзене

Что такое RateableWrapper

Идея заключается в том, что RateableWrapper - это место, где находится большая часть логики нашего списка рейтингов. Он размещает полосы рейтинга на строках и отслеживает состояния полос рейтинга по мере их изменения пользователем. Для состояний у него есть float[], размер которого соответствует количеству строк, которые, по словам делегата, находятся в списке.
Реализация функции getView() в RateableWrapper напоминает таковую в RateListDemo, за исключением того, что вместо использования LayoutInflater нам нужно вручную построить LinearLayout, чтобы вместить наш RatingBar и "внутренности" (то есть представление, созданное делегатом, которое мы украшаем флажком). LayoutInflater предназначен для построения представления из необработанных виджетов; в нашем случае мы не знаем заранее, как будут выглядеть строки, кроме того, что нам нужно добавить в них флажок. Однако все остальное похоже на то, что мы видели в RateListDemo:
Разница заключается в возможности повторного использования. Мы м

Идея заключается в том, что RateableWrapper - это место, где находится большая часть логики нашего списка рейтингов. Он размещает полосы рейтинга на строках и отслеживает состояния полос рейтинга по мере их изменения пользователем. Для состояний у него есть float[], размер которого соответствует количеству строк, которые, по словам делегата, находятся в списке.



Реализация функции getView() в RateableWrapper напоминает таковую в RateListDemo, за исключением того, что вместо использования LayoutInflater нам нужно вручную построить LinearLayout, чтобы вместить наш RatingBar и "внутренности" (то есть представление, созданное делегатом, которое мы украшаем флажком). LayoutInflater предназначен для построения представления из необработанных виджетов; в нашем случае мы не знаем заранее, как будут выглядеть строки, кроме того, что нам нужно добавить в них флажок. Однако все остальное похоже на то, что мы видели в RateListDemo:
Разница заключается в возможности повторного использования. Мы можем упаковать RateListView в собственный JAR и поместить его в любой проект Android, где он нам понадобится. Таким образом, хотя RateListView несколько сложен в написании, нам придется написать его только один раз, а остальной код приложения будет до безобразия прост.

Конечно, этот RateListView мог бы использовать некоторые дополнительные возможности, такие как программная смена состояний (обновление как float[], так и самого RatingBar), возможность вызывать другую логику приложения при переключении состояния RatingBar (через какой-то обратный вызов) и т.д.