如何在 Jetpack Compose 中分屏

How to split screen in Jetpack compose

我想像这样分割我的屏幕,首先是一半(整个屏幕的 0.5f),然后是另一半(整个屏幕的 0.25f),然后再次将它分成一半(0.125f),但是什么时候做它,它与其中一个屏幕重叠并且没有按预期拆分

 Box(modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.BottomCenter) {
        MapLoad()
        //0.5f of screen
        Column(
            modifier = Modifier
                .fillMaxHeight(0.5f)
                .fillMaxWidth()
                .background(color = Purple200)
        ) {

            //0.25f
            Column(
                modifier = Modifier
                    .fillMaxHeight(0.5f)
                    .fillMaxWidth()
                    .background(color = NotFoundLabel)
            ) {
                //0.125f
                Column(
                    modifier = Modifier
                        .fillMaxHeight(0.5f)
                        .fillMaxWidth()
                        .background(color = LightBlue)
                ) {

                    Text("SOME TEXT ONE",Modifier.fillMaxSize().background(color = Color.Red))
                }
                //0.125f
                Column(
                    modifier = Modifier
                        .fillMaxWidth()
                        .fillMaxHeight(0.5f)
                        .background(color = Color.Cyan)
                ) {
                    Text("SOME TEXT TWO",Modifier.fillMaxSize().background(color = Color.White))
                }
            }
        }
    }

奇怪的是,当我将最后一列的青色 .fillMaxHeight(0.5f) 更改为 1f 时,它填满了 space 的整个一半。 有什么想法吗?

Modifier.fillMaxHeight取部分尺寸在测量视图时可用。

当您同时使用其中两个时,第一个视图会占用一半的可用尺寸,第二个会占用剩余尺寸的一半。

您可以对第二个视图使用 Modifier.fillMaxHeight(1f),但对两个视图都使用 Modifier.weight(1f) 似乎更清楚。