繁体   English   中英

使用 Jetpack Compose 仅​​在给定边界内拖动 Composable

[英]Drag Composable only inside given boundries with Jetpack Compose

所以我在另一个盒子(边界)内有一个黑盒子(矩形),矩形设置为可拖动

但是现在我可以在整个窗口周围拖动矩形,但我希望如果矩形“离开”边界它应该消失在它后面。 我可以使用其他修饰符吗?

这里有一点上下文:

我的代码如下所示:

MaterialTheme {
        Box(modifier = Modifier
            .size(500f.dp)
            .border(2f.dp, Color.Black, RectangleShape)
        ){
            Box(modifier = Modifier
                .offset { IntOffset(offsetX.roundToInt(), 0) }
                .draggable(
                    orientation = Orientation.Horizontal,
                    state = rememberDraggableState { delta ->
                        offsetX += delta
                    }
                )
                .background(Color.Blue)
                .size(100f.dp)
            ){
                Text("Hello")
            }
        }
    }

当我将矩形拖到边界外时,它看起来像这样:

不良行为

但它应该更像这样:

通缉行为

在要剪辑其内容的可组合组件上,添加clipToBounds()修饰符。

Box(modifier = Modifier
    .size(500f.dp)
    .border(2f.dp, Color.Black, RectangleShape)
    .clipToBounds()
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM