Я пытаюсь обновить список фотографий в JetPack Compose Bottom Sheet. Это Arraylist of Image Bitmaps: < /p>
// create an empty arraylist
var bitmaps: ArrayList = ArrayList()
Далее я читаю список файлов, перебираю его URI, открываю потоки к файлам и добавляю уменьшенные версии в список массивов растровых изображений:
val input1 = cr.openInputStream(currentFile.toUri())
val tmp = BitmapFactory.decodeStream(input1)
// calculate scaled down size
val photoW = tmp.getWidth() / 4
val photoH = tmp.getHeight() / 4
val out = Bitmap.createScaledBitmap(tmp, photoW, photoH, false)
// add scaled image to bitmaps arraylist
bitmaps.add(out)
Это запускается внутри onclick = {} Iconbutton для нижнего листа, и я печатаю размер ArrayList, чтобы проверить его Обновление - это происходит (если я сделаю новую фотографию, добавлена), но на нижнем листе не показывает новую фотографию. < /p>
Где я ошибаюсь? Я думал, что это может быть проблема мутаблелиста, но список обновляется. Необходим ли шаг для обновления нижнего листа?
@Composable
fun PhotoBottomSheetContent(
bitmaps: List,
modifier: Modifier = Modifier
) {
if (bitmaps.isEmpty()) {
Box(
modifier = modifier
.padding(16.dp),
contentAlignment = Alignment.Center
) {
Text("There are no photos yet")
}
} else {
LazyVerticalGrid(
columns = GridCells.Fixed(2),
horizontalArrangement = Arrangement.spacedBy(16.dp),
verticalArrangement = Arrangement.spacedBy(16.dp),
contentPadding = PaddingValues(16.dp),
modifier = modifier
) {
items(bitmaps) { bitmap ->
Image(
bitmap = bitmap.asImageBitmap(),
contentDescription = null,
modifier = Modifier
.clip(RoundedCornerShape(10.dp))
)
}
}
Подробнее здесь: https://stackoverflow.com/questions/793 ... t-updating
Список изображений в нижнем листе не обновляется ⇐ Android
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение