Я пытаюсь приблизиться к элементу в ленивой колонке. Я пробовал разные способы, но у всех есть проблема, и я не знаю, как ее исправить. С первой попытки я попытался масштабировать и обнаружить жест на изображении, но потерял возможность прокручивать список, и второй элемент перекрылся.
Во второй попытке я поместил изображение в коробку, чтобы оно увеличиваться при увеличении, и изображение адаптируется к рамке. Теперь второй элемент не перекрывается при масштабировании, но я не могу прокручивать.
Есть ли способ масштабировать и прокручивать список, не перекрывая элементы?
Спасибо
Попробуйте 1
var scale = remember { mutableStateOf(1f) }
LazyColumn(
modifier = Modifier
.fillMaxSize()
) {
items(items = list) { item ->
if (item != null) {
Image(
modifier = Modifier
.fillMaxSize()
.pointerInput(Unit) {
detectTransformGestures { _, _, zoom, _ ->
scale.value *= zoom
}
}
.graphicsLayer {
scaleX = maxOf(1f, minOf(3f, scale.value));
scaleY = maxOf(1f, minOf(3f, scale.value))
}, bitmap = item, contentDescription = ""
)
}
}
}
Попробуйте 2
var scale = remember { mutableStateOf(1f) }
Box(modifier = Modifier
.fillMaxSize()
.graphicsLayer {
scaleX = maxOf(1f, minOf(3f, scale.value));
scaleY = maxOf(1f, minOf(3f, scale.value))
}) {
LazyColumn(
modifier = Modifier
.fillMaxSize()
) {
items(items = list) { item ->
if (item != null) {
Image(
modifier = Modifier
.fillMaxSize().pointerInput(Unit) {
detectTransformGestures { _,_, zoom, _ ->
scale.value *= zoom
}
}, bitmap = item, contentDescription = ""
)
}
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/693 ... olumn-item