В стандартная настройка RecyclerView с типичными представлениями Android, механизмы предварительной загрузки и кэширования RecyclerView прикрепляют элементы близко к области просмотра, поэтому следующий и предыдущий элементы готовы при прокрутке в поле просмотра.
Однако при ComposeView, У меня возникла задержка, поскольку метод setContent вызывается только тогда, когда элемент становится видимым на экране. Такое поведение вызывает видимую задержку, поскольку следующий элемент не составляется и не отображается до тех пор, пока не появится в области просмотра.
Замена RecyclerView на LazyColumn сейчас невозможна из-за сложности макета и необходимости обрабатывать несколько типов представлений в списке.
Есть ли способ заставить ComposeView прикрепиться к окну раньше или вызвать композицию, не дожидаясь видимости? Или существует надежный шаблон для предварительной визуализации элементов ComposeView в настройке RecyclerView, чтобы избежать задержек?
Пример кода:
Код: Выделить всё
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
holder.composeView.setContent {
MyComposableContent()
}
- Методы улучшения поведения предварительной отрисовки ComposeView в RecyclerView.
- Обходные пути или рекомендации по использованию Compose в
элементах RecyclerView. - Рекомендации по обращению с гладкими прокрутка
и предварительная отрисовка с помощью Compose содержимого в RecyclerView.
Подробнее здесь: https://stackoverflow.com/questions/791 ... in-jetpack