Jetpack Compose 将文本内容对齐到脚手架的中心

Ran*_*mar 3 android android-jetpack-compose android-jetpack-compose-text

我的问题:

我想将我的 Text() 内容放置在 Scaffold 中页面的中心。

我尝试了“textAlign = TextAlign.Center” - 它仅在水平区域中对齐文本。垂直区域中的文本不对齐。

我的代码:

@Composable
fun ScaffoldWithTopBar() {
    Scaffold(
        topBar = {
            TopAppBar(
                title = {
                    Text(text = "Top App Bar")
                },
                navigationIcon = {
                    IconButton(onClick = {}) {
                        Icon(Icons.Filled.ArrowBack, "backIcon")
                    }
                },
                backgroundColor = MaterialTheme.colors.primary,
                contentColor = Color.White,
                elevation = 10.dp
            )
        }, content = {
            Column(
                modifier = Modifier
                    .fillMaxSize()
                    .background(Color(0xff8d6e63)),
                verticalArrangement = Arrangement.Center,
                horizontalAlignment = Alignment.CenterHorizontally
            ) {

            }
            Text(
                text = "Content of the page",
                fontSize = 30.sp,
                color = Color.White
            )
        })
}
Run Code Online (Sandbox Code Playgroud)

注意:我还没有将此文本放入“专栏”中。我直接用的。

我的输出:

在此输入图像描述

问题: 如何将文本放置在父级的中心?

Gab*_*tti 7

将 分配fillMaxSize()给父容器,而不是分配给Text

   Box(Modifier.fillMaxSize(),
       contentAlignment = Center
   ) {
       Text(
           text = "Content of the page",
           fontSize = 30.sp,
           modifier = Modifier
               .background(Color(0xffb3e5fc)),
       )
   }
Run Code Online (Sandbox Code Playgroud)

或者:

Column(Modifier.fillMaxSize(),
    verticalArrangement = Arrangement.Center,
    horizontalAlignment = Alignment.CenterHorizontally
) {
    Text(
        text = "Content of the page",
        fontSize = 30.sp,
        modifier = Modifier
            .background(Color(0xffb3e5fc)),
    )
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述