Android 为什么可以';t toPx()在画布之外工作?

Android 为什么可以';t toPx()在画布之外工作?,android,android-jetpack-compose,Android,Android Jetpack Compose,在下面的代码中,toPx()在Canvas中工作,但不在Surface中工作。为什么? Canvas(modifier = Modifier.size(16.dp)) { val textPaint = Paint().asFrameworkPaint().apply { textSize = 32.dp.toPx() } } Surface(modifier = Modifier.size(16.dp)) {

在下面的代码中,
toPx()
Canvas
中工作,但不在
Surface
中工作。为什么?

    Canvas(modifier = Modifier.size(16.dp)) {
        val textPaint = Paint().asFrameworkPaint().apply {
            textSize = 32.dp.toPx()
        }
    }

    Surface(modifier = Modifier.size(16.dp)) {
        val textPaint = Paint().asFrameworkPaint().apply {
            textSize = 32.dp.toPx() // Error `toPx()`
        }
    }    
toPx()
函数是在接口内部定义的,除非您提供它,否则无法使用它。
Canvas
与提供它的

要使用它,您可以使用提供程序提供密度。
比如:

val dpToPx = with(LocalDensity.current) { 32.dp.toPx() }

你得到的错误是什么?