如何限制仅在 canvas 内显示的可绘制对象?

How to restrict drawables only shown inside canvas?

我有一个 canvas 位于屏幕的右侧。左边是一些按钮。如果一些 drawbles 的 x 值是负数,它们被绘制在左侧,canvas 之外。我怎样才能避免它?

Row {
    Button(onClick = {
    }) {
        Text("File")
    }
    Canvas(modifier = ...) {
        drawPoints(dataPts, PointMode.Points, Color.Blue, strokeWidth = 5f)
    }
}

默认情况下,所有 Compose 视图都不会将其内容裁剪到边界之外。

需要剪辑的时候可以加Modifier.clipToBounds:

Canvas(Modifier.clipToBounds())

或者您可以使用 Modifier.clip 剪裁成特定形状。