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