这可能是由于在使用Canvas
绘制时使用了硬编码的值而不是相对于屏幕大小的百分比值所致。使用Modifier
中的fillMaxSize()
和align()
函数来告诉Composable在易于推断尺寸和位置的情况下如何渲染。以下是一个修复示例:
@Composable
fun CanvasExample(){
Canvas(modifier = Modifier.fillMaxSize()) {
drawCircle(
color = Color.Red,
center = Offset(0.25f * size.width, 0.5f * size.height),
radius = size.minDimension / 4
)
}
}
使用drawCircle()
指定中心点相对于视图大小的比例来绘制圆形。该代码确保当您缩小视图时,圆形将继续在屏幕上完全绘制。
请确保任何其他使用Canvas的代码也使用了相对于屏幕大小的百分比值而不是硬编码的绝对值。