暂停图像加载在线圈onscroll在lazycolumn在jetpack组成Android我们正在使用线圈加载图像与喷气背包组成,早先在滑翔与recylerview或其他列表,我们有选择暂停加载图像时,我们滚动,这是一个有效的方式来防止滞后滚动,有没有办法实现这一点.
stszievb1#
根据指南,在Coil 2.x中,他们已经做到了这一点。根据指南的这一部分
的数据事实上,这是coil 2.0中的issue之一,当scoped被取消时,它没有取消请求。此问题已解决。
ldioqlga2#
您可以检查项目是否可见,您可以加载图像,否则不加载它。
val state = rememberLazyListState() val fullyVisibleIndices: List<Int> by remember { derivedStateOf { val layoutInfo = state.layoutInfo val visibleItemsInfo = layoutInfo.visibleItemsInfo if (visibleItemsInfo.isEmpty()) { emptyList() } else { val fullyVisibleItemsInfo = visibleItemsInfo.toMutableList() val lastItem = fullyVisibleItemsInfo.last() val viewportHeight = layoutInfo.viewportEndOffset + layoutInfo.viewportStartOffset if (lastItem.offset + lastItem.size > viewportHeight) { fullyVisibleItemsInfo.removeLast() } val firstItemIfLeft = fullyVisibleItemsInfo.firstOrNull() if (firstItemIfLeft != null && firstItemIfLeft.offset < layoutInfo.viewportStartOffset) { fullyVisibleItemsInfo.removeFirst() } fullyVisibleItemsInfo.map { it.index } } } } LazyColumn( state = state, contentPadding = PaddingValues(30.dp) ) { items(100) { index -> val isVisible by remember(index) { derivedStateOf { fullyVisibleIndices.contains(index) } } Text( index.toString(), modifier = Modifier .background(if (isVisible) Color.Green else Color.Transparent) .padding(30.dp) ) } }
字符串
2条答案
按热度按时间stszievb1#
根据指南,在Coil 2.x中,他们已经做到了这一点。根据指南的这一部分
的数据
事实上,这是coil 2.0中的issue之一,当scoped被取消时,它没有取消请求。此问题已解决。
ldioqlga2#
您可以检查项目是否可见,您可以加载图像,否则不加载它。
字符串