Jetpack Compose Modifier未生效求助:Column布局及Surface异常
问题解决方法
1. Surface背景色不生效的修复
Surface组件本身自带color参数用于设置背景,不需要用Modifier.background。另外默认Surface不会自动占满父布局空间,必须添加fillMaxSize()让它铺满屏幕,否则背景色无法显示。
修复后的Surface代码:
Surface( color = Color(0xFF000000), modifier = Modifier.fillMaxSize() )
2. Column子元素不居中的修复
你的Column只设置了宽度自适应,但没有占满屏幕的宽高,导致居中效果只在Column自身的小区域内生效。给Column添加fillMaxSize()让它占据整个父布局空间,这样horizontalAlignment和verticalArrangement的居中设置才会作用于整个屏幕范围。
修复后的Column代码:
Column( horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.Center, modifier = Modifier.fillMaxSize() ) { Text(text = "I should be in the center") }
完整修正代码
setContent { var status by remember { mutableStateOf(Status.State1) } when(status) { Status.State1 -> { Surface( color = Color(0xFF000000), modifier = Modifier.fillMaxSize() ) } Status.State2 -> { Column( horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.Center, modifier = Modifier.fillMaxSize() ) { Text(text = "I should be in the center") } } else -> {} } }
内容的提问来源于stack exchange,提问作者GPorubanTKK
相关产品推荐
相关产品推荐

