如何让TopAppBar的navigationIcon消失?

LXJ*_*LXJ 1 kotlin android-jetpack-compose

我的一些屏幕不需要抽屉,因此我希望导航图标不要显示在顶栏上。使用以下代码,我使图标不显示,但仍为图标保留空间。我怎样才能消除它?

TopAppBar(
    title = {
        Text(text = title,
            textAlign = TextAlign.Start,
            fontSize = 18.sp) },
    actions = { TopbarActions()},
    navigationIcon = {
        if (needDrawer) {
            IconButton(onClick = {
            }) {
                Icon(Icons.Filled.Menu, "")
            }
        } else Spacer(Modifier.width(1.dp))
    },
)
Run Code Online (Sandbox Code Playgroud)

Phi*_*hov 5

您正在创建一个空视图,但您需要让人们TopAppBar知道不应该有视图。

null像这样传递navigationIcon

TopAppBar(
    navigationIcon = if (needDrawer) {
        @Composable {
            IconButton(onClick = {
            }) {
                Icon(Icons.Filled.Menu, "")
            }
        }
    } else null
)
Run Code Online (Sandbox Code Playgroud)