Перетащите представление внутри родительского поля с помощью Jetpack Compose.Android

Форум для тех, кто программирует под Android
Ответить
Гость
 Перетащите представление внутри родительского поля с помощью Jetpack Compose.

Сообщение Гость »


Я новичок в создании Jetpack. Пожалуйста, помогите мне найти решение моей проблемы.

Я пытаюсь добавить представление перетаскивания. Представление перетаскивания с помощью реактивного ранца успешно реализовано, но при перетаскивании представление исчезает или обрезается, когда перетаскиваемое представление касается границы родительского поля или того же положения.
р>
Что я хочу: перетаскиваемый вид должен отображаться внутри родительского элемента и привязываться к границе, а не выходить за пределы родительского элемента, но он также не должен быть обрезан.


Изображение


Что я получил: перетаскиваемый вид обрезается

Для получения дополнительной информации посмотрите это видео — Видео

Это решение уже проверено и опробовано

Мой код:
Box(modifier = Модификатор .fillMaxWidth() .height(300.dp) .onGloballyPositioned { координаты -> родительскийViewHeight = координаты.размер.высота родительскийViewWidth = координаты.размер.ширина } .clipToBounds() .background(color = Color.Gray)) { // Перетаскиваемая точка 1 Поверхность( модификатор = Модификатор .size(50.dp) .компенсировать { IntOffset( startPointForConnection1.x.toInt(), startPointForConnection1.y.toInt() ) } .pointerInput(Единица измерения) { обнаружитьTransformGestures { центроид, панорамирование, масштабирование, вращение -> startPointForConnection1 = Смещение( startPointForConnection1.x + pan.x, startPointForConnection1.y + pan.y ) /* val newOffset = Offset( startPointForConnection1.x + pan.x, startPointForConnection1.y + pan.y ) var maxX = size.width - родительскийViewWidth.dp.toPx() var maxY = size.height - родительскийViewHeight.dp.toPx() если(maxX
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»