LazyVerticalGrid(
modifier = modifier
.fillMaxSize(),
contentPadding = PaddingValues(horizontal = 16.dp),
columns = GridCells.Fixed(MAX_NUMBER_OF_COLUMNS),
verticalArrangement = Arrangement.spacedBy(16.dp),
horizontalArrangement = Arrangement.spacedBy(17.dp)
) { something ->
filteredList.forEach {
when (something.section) {
Section.1,
Section.2 -> {
items(items = items,
span = { GridItemSpan(MAX_NUMBER_OF_COLUMNS) },
key = { it.id }) { item ->
Something12Composable(
item
)
}
}
Section.3 -> {
items(items = items,
span = { GridItemSpan(MAX_NUMBER_OF_COLUMNS) },
key = { it.id }) { item ->
Something3Composable(
item
)
}
}
}
}
}
}
< /code>
И есть функция фильтра, которая изменяет фильтрованный список, удаляя разделы и только показывает одну в то время.
Каждый элемент имеет изображение, загруженное в асинсолюте в следующем композитном: < /p>
Something12Composable(){
Column(
modifier = modifier,
verticalArrangement = Arrangement.spacedBy(7.dp)
) {
Row(
Modifier.fillMaxWidth(),
horizontalArrangement = Arrangement.spacedBy(16.dp),
verticalAlignment = Alignment.CenterVertically
) {
AsyncImage(
model = imageUrl,
modifier = Modifier
.clip(RoundedCornerShape(8.dp))
.size(60.dp)
.background(Color(someColor)),
contentScale = ContentScale.Crop,
contentDescription = null
)
Column(
modifier = Modifier.weight(1f),
verticalArrangement = Arrangement.spacedBy(6.dp)
) {
Text(title)
}
}
}
}
Something12Composable(){
// similar to the one above with slight UI difference.
}
< /code>
Все работает нормально при загрузке экрана или при прокрутке, и он гладкий. Но как только фильтр выбран и элементы фильтруются, некоторые изображения не обрезаны, и это случайно. Я попытался:
[*] box the asyncimage
и клип, который с MatchParentsize или FillMaxSize
Изменение в изображении с meampsyncimagepainter (model = relecture) , но те же результаты. Предметы LazyverticalGrid для принудительного переоборудования, они улучшили его, но не исправили проблему полностью. Он также замедлял рендеринг и перемещенные элементы вокруг, которые не нужны. CRIPPING.>
Section.3 -> { items(items = items, span = { GridItemSpan(MAX_NUMBER_OF_COLUMNS) }, key = { it.id }) { item -> Something3Composable( item ) } } } } } } < /code> И есть функция фильтра, которая изменяет фильтрованный список, удаляя разделы и только показывает одну в то время. Каждый элемент имеет изображение, загруженное в асинсолюте в следующем композитном: < /p> Something12Composable(){ Column( modifier = modifier, verticalArrangement = Arrangement.spacedBy(7.dp) ) { Row( Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.spacedBy(16.dp), verticalAlignment = Alignment.CenterVertically ) { AsyncImage( model = imageUrl, modifier = Modifier .clip(RoundedCornerShape(8.dp)) .size(60.dp) .background(Color(someColor)), contentScale = ContentScale.Crop, contentDescription = null ) Column( modifier = Modifier.weight(1f), verticalArrangement = Arrangement.spacedBy(6.dp) ) { Text(title) } } } }
Something12Composable(){ // similar to the one above with slight UI difference. } < /code> Все работает нормально при загрузке экрана или при прокрутке, и он гладкий. Но как только фильтр выбран и элементы фильтруются, некоторые изображения не обрезаны, и это случайно. Я попытался:
[*] box the asyncimage [/code] и клип, который с MatchParentsize или FillMaxSize Изменение в изображении с meampsyncimagepainter (model = relecture) , но те же результаты. Предметы LazyverticalGrid для принудительного переоборудования, они улучшили его, но не исправили проблему полностью. Он также замедлял рендеринг и перемещенные элементы вокруг, которые не нужны. CRIPPING.>