RecyclerView прыгает при прокрутке элементов ComposeView переменной высоты
у меня есть
Высота макета каждого
Я использую Compose 1.2.0 и RecyclerView 1.3.0-beta01.
Есть ли решение для плавной прокрутки в обоих направлениях?
Обновление: я сообщил об ошибке здесь и предоставил пример проекта, демонстрирующий проблему здесь .
1 ответ
попробуй это. Предположим, что представлением элемента является ComposeView, сделайте это в onBindViewHolder:
composeView.getChildAt(0)?.requestLayout()
Это может исправить прыжки. Но это может оказать некоторое влияние на производительность. Сделайте свой собственный выбор.
вот мой item.xml.
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
</data>
<androidx.compose.ui.platform.ComposeView
android:id="@+id/composeItem"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</layout>
и сделайте это в onBindViewHolder() адаптера:
findView<ComposeView>(R.id.composeItem).apply {
// avoid wrapContent jump
getChildAt(0)?.requestLayout()
setContent {
// your own Composable method
Content()
}
}