我的片段中有三个编写函数.

@Composable
fun MessageView(
    action: ApiManagementAction
) {
    Column(
        modifier = Modifier.padding(15.dp),
        horizontalAlignment = Alignment.CenterHorizontally
    ) {
        Spacer(modifier = Modifier.height(20.dp))
        Image(
            painter = painterResource(id = R.drawable.ic_api),
            contentDescription = null,
        )
        Spacer(modifier = Modifier.height(20.dp))
        Text(
            text = stringResource(id = R.string.ABCD),
            fontWeight = FontWeight.Bold,
            fontSize = 14.sp,
            textAlign = TextAlign.Center,
            modifier = Modifier
                .fillMaxWidth()
                .padding(horizontal = 5.dp)
        )
        Spacer(modifier = Modifier.height(10.dp))
        Text(
            text = stringResource(id = R.string.GFHD),
            fontSize = 12.sp,
            color = colorResource(id = R.color.text_secondary),
            textAlign = TextAlign.Center,
            modifier = Modifier
                .fillMaxWidth()
                .padding(horizontal = 10.dp)
        )
        Spacer(modifier = Modifier.height(30.dp))
        CreateApiButton(action = action, showElevation = false)
        Spacer(modifier = Modifier.height(10.dp))
        GotoDocument(action = action)
    }
}
@Composable
fun CreateApiButton(
    action: ApiManagementAction,
    modifier: Modifier = Modifier,
    showElevation: Boolean,
) {
    Column(
        modifier = modifier.fillMaxWidth(),
        verticalArrangement = Arrangement.Center
    ) {
        Box(
            modifier = Modifier
                .fillMaxWidth()
                .padding(horizontal = 12.dp),
        ) {
            Text(
                text = stringResource(id = R.string.title_create_api),
                textAlign = TextAlign.Center,
                fontSize = 12.sp,
                modifier = Modifier
                    .background(
                        color = colorResource(id = R.color.color_primary),
                        shape = RoundedCornerShape(5.dp)
                    )
                    .clickable { action.checkGABeforeEditAndCreate.invoke(null) }
                    .height(45.dp)
                    .fillMaxWidth()
                    .wrapContentHeight(align = Alignment.CenterVertically)
                    .align(Alignment.TopCenter),
                color = colorResource(id = R.color.black)
            )
        }
    }

}
@Composable
fun GotoDocument(
    action: ApiManagementAction,
) {

    Row(
        modifier = Modifier
            .height(45.dp)
            .fillMaxWidth()
            .padding(horizontal = 12.dp)
            .clickable {
                action.gotoDocument.invoke()
            }
            .border(
                width = 1.dp,
                shape = RoundedCornerShape(5.dp),
                color = colorResource(id = R.color.divider)
            ),
        verticalAlignment = Alignment.CenterVertically,
        horizontalArrangement = Arrangement.Center
    ) {
        Icon(
            painter = painterResource(id = R.drawable.ic_api_doc),
            contentDescription = null,
            modifier = Modifier
                .height(20.dp)
                .width(15.dp)
        )
        Spacer(modifier = Modifier.width(5.dp))
        Text(
            text = stringResource(id = R.string.title_api_doc),
            textAlign = TextAlign.Center,
            fontSize = 12.sp,
            modifier = Modifier
                .height(45.dp)
                .wrapContentHeight(align = Alignment.CenterVertically)
                .align(Alignment.CenterVertically),
        )
    }

}

我运行Compose Metric并获得以下结果:

restartable scheme("[androidx.compose.ui.UiComposable]") fun MessageView(
  stable action: ApiManagementAction
  unstable <this>: ApiManagementFragment
)
restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun CreateApiButton(
  stable action: ApiManagementAction
  stable modifier: Modifier? = @static Companion
  unused stable showElevation: Boolean
  unused unstable <this>: ApiManagementFragment
)
restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun GotoDocument(
  stable action: ApiManagementAction
  unused unstable <this>: ApiManagementFragment
)

如你所见,MessageViewnot,skippable,因为它的参数ApiManagementFragment不稳定. 现在我的问题是:为什么Compose要将我的片段注入到Composed函数中,即使它没有被使用?

推荐答案

您正在定义片段中的Composables.

它隐含着对它的引用.

Android相关问答推荐

如何允许我的应用程序在Android 10上运行,同时目标是API 33

Android Kotlin DSL Gradle找不到自定义存储库中的依赖项

如何在Android中使用TextView设置动态文本的样式

组成底部导航栏,自定义形状,周围透明

我如何剪裁一个可由另一个合成的

使用RecycleView和Diffutils时从列表中删除项目时出现问题

如何在Android中编写挂起函数和stateflow的单元测试

判断文本视图是否为单行

如何在喷气背包中绕过集装箱

找不到com.android.tools.build:gradle:8.0

如何使用react native下载android中/data/data/[应用程序包名称文件夹]/files中的文件

相机2问题:设置AE区域、AF区域和AWB区域.

列语义在列中的第一个元素之后读取

在Android RoomDB中使用Kotlin Flow和删除数据时如何解决错误?

Jetpack Compose - 每次点击按钮都不起作用

有什么方法可以确定正在使用哪个 Android 手机的麦克风进行录音?

有人可以向我解释这两个结果有什么区别吗?

CenterAlignedTopAppBar 滚动行为:未为参数状态传递值

Android YouTube SDK - 视频无法在某些 Android 设备中播放

即使我在单选按钮上明确设置了选中状态,RecyclerView 中的单选按钮也会随机取消选中