有什么问题?
现在我试图在LazyColumn
中使用我的自定义Android视图。在我看来,因为每次滚动时都要重新创建自定义视图,所以图片非常滞后. 那么,除了用Compose实现视图之外,还有什么方法可以使它更平滑吗?
我的代码:
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) }
)
}
对于遇到同样问题的其他人:
到今天为止,这个问题还没有解决方案。这个问题是谷歌知道的,你可以在这里跟踪问题的解决方案。
如果您需要在撰写世界中使用AndroidView
平滑滚动,您有两个解决方案:
- 你有有限的项目数量:你可以使用一个简单的
Column
与verticalScroll
和添加你的AndroidView
里面; - 你有太多的项目:你必须实现一个
RecyclerView
,并使用它作为AndroidView
,而不是AndroidView
在LazyColumn
。