有什么问题吗?
现在我尝试在
LazyColumn
中使用我的自定义 Android 视图。在我看来,由于每次滚动时都会重新创建自定义视图,因此图片非常laggy。那么,除了用 Compose 实现 view 之外,还有什么办法可以让它更流畅呢?
我的代码:
LazyColumn {
items(events){ event ->
EventItem(event, callBack)
}
}
@Composable
private fun EventItem(
event: EventOverviewUiModel,
callBack : (EventsAdapterEvent) -> Unit
) {
AndroidView(
modifier = Modifier.fillMaxWidth(),
factory = { context -> EventOverviewView(context) },
update = { view -> view.bind(event) }
)
}
对于遇到同样问题的其他人:
截至目前,这个问题还没有解决方案。 Google 已知此问题,您可以在此处跟踪问题的解决方案。
如果您需要在 Compose 世界中使用
AndroidView
并平滑滚动,您有两种解决方法:
Column
和 verticalScroll
并在里面添加您的 AndroidView
;RecyclerView
并将其用作 AndroidView
,而不是 AndroidView
中的 LazyColumn
。现在可以解决这个问题,请参阅此处的 ScrollingAndroidViewsDemo: https://android-review.googlesource.com/c/platform/frameworks/support/+/2394474