【发布时间】:2021-11-29 11:59:19
【问题描述】:
根据https://developer.android.com/jetpack/compose/interop/compose-in-existing-ui#compose-recyclerview,可以在RecyclerView中使用的可组合ViewHolder如下
import androidx.compose.ui.platform.ViewCompositionStrategy
class MyComposeViewHolder(
val composeView: ComposeView
) : RecyclerView.ViewHolder(composeView) {
init {
composeView.setViewCompositionStrategy(
ViewCompositionStrategy.DisposeOnViewTreeLifecycleDestroyed
)
}
fun bind(input: String) {
composeView.setContent {
MdcTheme {
Text(input)
}
}
}
}
看起来,每次都是bind 可组合的setContent(即再次重绘)。
我用Profile GPU Rendering测量速度,很明显ReyclerView+ComposeViewHolder的Hybrid比纯RecyclerView或LazyColumn慢。
您可以获取design here
我们怎样才能加速Hybrid RecyclerView+ComposeViewHolder?
【问题讨论】:
标签: android android-recyclerview android-jetpack-compose android-viewholder