MediumTopBar第二行背景色异常求助(Jetpack Compose)
问题排查与解决
核心原因:Material3的
MediumTopAppBar采用双行结构,标题所在的第二行容器颜色由titleLargeContainerColor属性控制。你当前的代码仅配置了顶部栏的containerColor和滚动状态下的scrolledContainerColor,未指定标题行的背景色,导致它使用默认的透明/白色(取决于当前主题配置)。解决代码调整:在
TopAppBarDefaults.mediumTopAppBarColors中添加titleLargeContainerColor参数,将其指定为你定义的currentTopBarColor即可:
colors = TopAppBarDefaults.mediumTopAppBarColors( containerColor = currentTopBarColor, titleContentColor = MaterialTheme.colorScheme.onPrimary, actionIconContentColor = MaterialTheme.colorScheme.onPrimary, scrolledContainerColor = currentTopBarColor, titleLargeContainerColor = currentTopBarColor // 新增这一行,统一标题行背景色 ),
- 额外验证建议:
- 先将
currentTopBarColor替换为固定颜色(比如MaterialTheme.colorScheme.primary),排除颜色值本身的赋值问题。 - 检查是否有父布局(如Scaffold、Surface)的背景色设置意外透显到标题行区域。
- 先将
内容的提问来源于stack exchange,提问作者Cheché
相关产品推荐
相关产品推荐

