Anonymous
Compose Lazy Column очень тормозит при прокрутке
Сообщение
Anonymous » 02 июл 2024, 11:41
В моем приложении для создания сообщений у меня есть простой список с LazyColumn, но я сталкиваюсь с задержкой при первой прокрутке.
В моем списке загружается изображение и есть некоторые условия, но я удаляю эти условия и все равно есть задержка
Я получил релизную версию и добавил ключ в свой список, и моя модель стабильна
Код: Выделить всё
@Composable
fun TestScreen(marketList: List? = null) {
LazyColumn (Modifier.background(Color.White )){
if (marketList != null) {
items(marketList , key = {it.id}) {
MarketListItem(market = it ) {
}
}
}
}
и это MarketListItem
Код: Выделить всё
@Composable
fun MarketListItem(market: CombineMarketResponse, onMarketClick: (CombineMarketResponse) -> Unit) {
val context = LocalContext.current
val painter =
rememberAsyncImagePainter(
model =
ImageRequest.Builder(context).data(imageUrl)
.decoderFactory(SvgDecoder.Factory())
.crossfade(true)
.decoderFactory(SvgDecoder.Factory())
.memoryCachePolicy(CachePolicy.ENABLED)
.placeholder(if (needPlaceHolder) AppCompatResources.getDrawable(context, R.drawable.ic_placeholder) else null)
.error(if (needPlaceHolder) AppCompatResources.getDrawable(context, R.drawable.ic_placeholder) else null).build(),
)
Column(modifier = Modifier.clickable(indication = null, interactionSource = remember {
MutableInteractionSource()
}, onClick = {
onMarketClick(market)
})) {
Row(
Modifier
.fillMaxWidth()
.padding(dimensionResource(id = R.dimen.size_12))
.height(dimensionResource(id = R.dimen.size_44)),
) {
Box(
modifier = Modifier
.weight(1f)
.fillMaxHeight(),
contentAlignment = Alignment.CenterStart
) {
Box(
Modifier
.background(
color = colorRedSell,
shape = RoundedCornerShape(6.dp)
)
.padding(
vertical = dimensionResource(id = R.dimen.size_3),
horizontal = dimensionResource(id = R.dimen.size_12)
)
.widthIn(min = dimensionResource(id = R.dimen.size_32)),
contentAlignment = Alignment.Center,
) {
BodyText(
text = "321",
fontFamily = RabexFont.SemiBoldFaNum,
fontSize = RabexFontSize.Body3,
color = Color.White,
style = TextStyle(textDirection = TextDirection.Ltr),
)
}
}
Column(
Modifier
.weight(1f)
.padding(top = dimensionResource(id = R.dimen.size_2))
.fillMaxHeight(),
) {
BodyText(
text ="12",
fontFamily = RabexFont.RegularFaNum,
fontSize = RabexFontSize.Body3,
modifier = Modifier.weight(1f),
)
Spacer(modifier = Modifier.height(dimensionResource(id = R.dimen.size_6)))
BodyText(
text ="12",
fontFamily = RabexFont.RegularFaNum,
fontSize = RabexFontSize.Body4,
modifier = Modifier.weight(1f),
)
}
Column(horizontalAlignment = Alignment.End, modifier = Modifier.weight(1f)) {
Row(verticalAlignment = Alignment.CenterVertically) {
BodyText(
text = "${market.base}/${market.quote}",
fontFamily = RabexFont.RegularFaNum,
fontSize = RabexFontSize.Body4,
)
Spacer(modifier = Modifier.width(dimensionResource(id = R.dimen.size_4)))
Image(
painter = painter,
contentDescription = "Coil Image",
modifier = modifier,
colorFilter =
if (imageColor != null) {
ColorFilter.tint(color = colorPrimary100)
} else {
null
},
)
}
Spacer(modifier = Modifier.height(dimensionResource(id = R.dimen.size_6)))
Row {
Box(
modifier =
Modifier
.background(
color = colorSecondary100,
shape = RoundedCornerShape(6.dp),
)
.padding(
horizontal =
dimensionResource(
id = R.dimen.size_6,
),
vertical = dimensionResource(id = R.dimen.size_2),
),
) {
BodyText(
text = stringResource(id = R.string.p2p_trade),
fontFamily = RabexFont.RegularFaNum,
fontSize = RabexFontSize.Body5,
color = colorNatural6,
)
}
Spacer(modifier = Modifier.width(dimensionResource(id = R.dimen.size_4)))
Box(
modifier =
Modifier
.background(
color = colorSecondary100,
shape = RoundedCornerShape(6.dp),
)
.padding(
horizontal =
dimensionResource(
id = R.dimen.size_6,
),
vertical = dimensionResource(id = R.dimen.size_2),
),
) {
BodyText(
text = stringResource(id = R.string.title_trade_exchange),
fontFamily = RabexFont.RegularFaNum,
fontSize = RabexFontSize.Body5,
color = colorNatural6,
)
}
}
}
}
Divider(thickness = 1.dp, color = colorSecondary100)
}
Подробнее здесь:
https://stackoverflow.com/questions/786 ... -scrolling
1719909700
Anonymous
В моем приложении для создания сообщений у меня есть простой список с LazyColumn, но я сталкиваюсь с задержкой при первой прокрутке. В моем списке загружается изображение и есть некоторые условия, но я удаляю эти условия и все равно есть задержка Я получил релизную версию и добавил ключ в свой список, и моя модель стабильна [code]@Composable fun TestScreen(marketList: List? = null) { LazyColumn (Modifier.background(Color.White )){ if (marketList != null) { items(marketList , key = {it.id}) { MarketListItem(market = it ) { } } } } [/code] и это MarketListItem [code]@Composable fun MarketListItem(market: CombineMarketResponse, onMarketClick: (CombineMarketResponse) -> Unit) { val context = LocalContext.current val painter = rememberAsyncImagePainter( model = ImageRequest.Builder(context).data(imageUrl) .decoderFactory(SvgDecoder.Factory()) .crossfade(true) .decoderFactory(SvgDecoder.Factory()) .memoryCachePolicy(CachePolicy.ENABLED) .placeholder(if (needPlaceHolder) AppCompatResources.getDrawable(context, R.drawable.ic_placeholder) else null) .error(if (needPlaceHolder) AppCompatResources.getDrawable(context, R.drawable.ic_placeholder) else null).build(), ) Column(modifier = Modifier.clickable(indication = null, interactionSource = remember { MutableInteractionSource() }, onClick = { onMarketClick(market) })) { Row( Modifier .fillMaxWidth() .padding(dimensionResource(id = R.dimen.size_12)) .height(dimensionResource(id = R.dimen.size_44)), ) { Box( modifier = Modifier .weight(1f) .fillMaxHeight(), contentAlignment = Alignment.CenterStart ) { Box( Modifier .background( color = colorRedSell, shape = RoundedCornerShape(6.dp) ) .padding( vertical = dimensionResource(id = R.dimen.size_3), horizontal = dimensionResource(id = R.dimen.size_12) ) .widthIn(min = dimensionResource(id = R.dimen.size_32)), contentAlignment = Alignment.Center, ) { BodyText( text = "321", fontFamily = RabexFont.SemiBoldFaNum, fontSize = RabexFontSize.Body3, color = Color.White, style = TextStyle(textDirection = TextDirection.Ltr), ) } } Column( Modifier .weight(1f) .padding(top = dimensionResource(id = R.dimen.size_2)) .fillMaxHeight(), ) { BodyText( text ="12", fontFamily = RabexFont.RegularFaNum, fontSize = RabexFontSize.Body3, modifier = Modifier.weight(1f), ) Spacer(modifier = Modifier.height(dimensionResource(id = R.dimen.size_6))) BodyText( text ="12", fontFamily = RabexFont.RegularFaNum, fontSize = RabexFontSize.Body4, modifier = Modifier.weight(1f), ) } Column(horizontalAlignment = Alignment.End, modifier = Modifier.weight(1f)) { Row(verticalAlignment = Alignment.CenterVertically) { BodyText( text = "${market.base}/${market.quote}", fontFamily = RabexFont.RegularFaNum, fontSize = RabexFontSize.Body4, ) Spacer(modifier = Modifier.width(dimensionResource(id = R.dimen.size_4))) Image( painter = painter, contentDescription = "Coil Image", modifier = modifier, colorFilter = if (imageColor != null) { ColorFilter.tint(color = colorPrimary100) } else { null }, ) } Spacer(modifier = Modifier.height(dimensionResource(id = R.dimen.size_6))) Row { Box( modifier = Modifier .background( color = colorSecondary100, shape = RoundedCornerShape(6.dp), ) .padding( horizontal = dimensionResource( id = R.dimen.size_6, ), vertical = dimensionResource(id = R.dimen.size_2), ), ) { BodyText( text = stringResource(id = R.string.p2p_trade), fontFamily = RabexFont.RegularFaNum, fontSize = RabexFontSize.Body5, color = colorNatural6, ) } Spacer(modifier = Modifier.width(dimensionResource(id = R.dimen.size_4))) Box( modifier = Modifier .background( color = colorSecondary100, shape = RoundedCornerShape(6.dp), ) .padding( horizontal = dimensionResource( id = R.dimen.size_6, ), vertical = dimensionResource(id = R.dimen.size_2), ), ) { BodyText( text = stringResource(id = R.string.title_trade_exchange), fontFamily = RabexFont.RegularFaNum, fontSize = RabexFontSize.Body5, color = colorNatural6, ) } } } } Divider(thickness = 1.dp, color = colorSecondary100) } [/code] Подробнее здесь: [url]https://stackoverflow.com/questions/78695925/compose-lazy-column-is-very-laggy-while-scrolling[/url]