Kotlin Jetpack Compose:如何从修饰符 fillMaxHeight 中删除 dp 或 size

Kotlin Jetpack Compose: How to remove dp or sizefrom the Modifier fillMaxHeight

我正在制作一个闹钟应用程序来学习,现在我有一个惰性列,我希望它尽可能大,但是每当我添加修饰符 'fillMaxSize' / 'fillMaxHeight' 它越过我在屏幕底部的导航栏。我怎样才能从 lazyColumn 所在的盒子中删除一些尺寸或 dp。(或者他们是解决这个问题的更简洁的方法)

Box(
    modifier = Modifier
        .fillMaxSize()
        .background(Color.White)
) {
    Column(
        verticalArrangement = Arrangement.SpaceBetween,
        modifier = Modifier
            .fillMaxSize()
    ) {
        Title(
            image1 = painterResource(R.drawable.ic_arrow_back),
            image2 = painterResource(R.drawable.ic_cog),
            text = "Alarms",
            onClick1 = {},
            onClick2 = {}
        )

        Column(
            modifier = Modifier
                .fillMaxSize()
        ) {

            Box(
                modifier = Modifier
                    .padding(top = 40.dp, end = 15.dp)
                    .align(Alignment.End)
            ) {
                CButton(
                    image = painterResource(R.drawable.ic_create),
                    text = "Create",
                    textColor = LSecondary,
                    bgColor = LPrimary,
                ) {}
            }

            val boxTop = 60
            Box(
                modifier = Modifier
                    .padding(top = boxTop.dp)
                    .fillMaxHeight()
            ) {
                val alarmRepo = AlarmRepository()
                val items = alarmRepo.getAllData()

                LazyColumn {
                    itemsIndexed(
                        items = items,
                        key = { index, alarm ->
                            alarm.id
                        }
                    ) { index, alarm ->
                        AlarmList(alarm = alarm)
                    }

                }
            }
        }

        NavBar(
            onScreen = 1,
            onClick1 = {},
            onClick2 = {},
            onClick3 = {},
            onClick4 = {},
        )

    }
}

}

对于具体问题,您始终可以在 fillMaxHeight(...) 中包含宽度百分比。

话虽这么说,您可能想在这里做的是有一个主 Scafford 和您的内容,然后将您的导航栏添加为 bottomBar 属性。您可能想将 NavBar 组件更新为 BottomAppBar,但它应该可以工作。

Scaffold(
    topBar = { /* Top toolbar, if you want it. */ },
    bottomBar = { /* Bottom Nav bar, which is what you want to add. */ },
) { 
    /* App content goes here */
}