Управление сложным деревом состояний с помощью Compose и LazyListAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Управление сложным деревом состояний с помощью Compose и LazyList

Сообщение Anonymous »

Я хочу перестроить высокоинтерактивный список на основе RecyclerView с помощью Compose LazyList.
Список разделен на категории, и эти категории представляют собой необходимые параметры для одного выбора. Эти разделы можно разделить на несколько страниц. Например; на первой странице может быть выбран размер товара A, B или C. Каждый из них можно настроить; и эти настройки доступны, щелкнув первый вариант; скажем, B, что откроет новую страницу. Пока выбор не будет сделан, выбор B и заголовок категории для выбора B будут выделены.
На вложенной странице; вы увидите множество категорий/вариантов (каждая из которых имеет заголовок, а затем варианты выбора для этой категории); и эти элементы выбора могут быть переключателями; флажки или регуляторы количества.
Здесь все становится сложнее; состояние пользовательского интерфейса заголовка категории будет зависеть от выбора, пользовательский интерфейс выбора будет зависеть от состояния всего раздела. (Текст остается тем же, но для разных элементов существуют разные состояния выделения), и эти отношения состояний могут существовать на разных страницах. Само состояние лучше всего представлено деревом требований и вариантов выбора; где действия пользователя вызовут события проверки, которые будут подниматься вверх по дереву; и тогда это вызовет обновления, которые будут идти вниз по дереву. (Большая часть дерева не будет видна на экране).
Наконец-то мы подошли к вопросу! Как mutableStateOf будет отслеживать состояния этого дерева? Дерево будет построено из коллекции с вложенными коллекциями. Каков наилучший подход к этому сценарию?
А как насчет использования Flow? Я подумал, что могу использовать Flow для распространения событий «состояния», и это состояние будет отслеживаться с помощью запоминания {mutableStateOf(state) }; а затем оно будет заменено, когда новое состояние не будет соответствовать старому.
Если это выполнимо? Могу ли я просто заменить переменную состояния; или мне нужно изменить параметры объекта?
А это вообще необходимо? Если каждое представление Compose запоминает состояние объекта; и объект обновляется посредством действий над коллекцией, членом которой является каждый из них; будет ли mutabeStateOf перекомпоновать/обновить представление, просто отслеживая свойства элемента коллекции, к которому оно привязано?

Подробнее здесь: https://stackoverflow.com/questions/780 ... d-lazylist
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»