尝试测量 ComposeView 以生成其位图时发生崩溃

Aug*_*rmo 9 android kotlin android-jetpack-compose

我试图通过 ComposeView 生成位图,但抛出此异常:

java.lang.IllegalStateException:无法找到 windowRecomposer;查看 androidx.compose.ui.platform.ComposeView{620841 VE..... ......I. 0,0-0,0} 未附加到位于 androidx.compose.ui.platform.AbstractComposeView.resolveParentCompositionContext(ComposeView. android.kt:244)在androidx.compose.ui.platform.AbstractComposeView.ensureCompositionCreated(ComposeView.android.kt:251)在androidx.compose.ui.platform.AbstractComposeView.onMeasure(ComposeView.android.kt:288)在android .view.View.measure(View.java:20238)

这就是我生成位图的方式:

val view = ComposeView(context).apply {
    this.setContent {
        Box(
            modifier = Modifier
                .fillMaxWidth()
        ) {
            Text(text = "Hello Stack Overflow")
        }
    }
    this.setPadding(0, 0, 0, 0
    )
    this.layoutParams = ViewGroup.LayoutParams(
        ViewGroup.LayoutParams.WRAP_CONTENT,
        ViewGroup.LayoutParams.WRAP_CONTENT
    )
    // !!! exception being thrown here, on measure !!!
    this.measure(
        View.MeasureSpec.makeMeasureSpec(384, View.MeasureSpec.EXACTLY),
        View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED)
    )
    this.layout(0, 0, this.measuredWidth, this.measuredHeight)
}

val bitmap = Bitmap
    .createBitmap(view.measuredWidth, view.measuredHeight, Bitmap.Config.RGB_565)
val canvas = Canvas(bitmap)

view.draw(canvas)
Run Code Online (Sandbox Code Playgroud)

我是不是忘记做某事了?