【问题标题】:Compose TopAppBar has no background colorCompose TopAppBar 没有背景色
【发布时间】:2023-01-03 18:16:00
【问题描述】:

我想将 TopAppBar 添加到我的 Compose 应用程序中,因此我执行了以下操作:

@OptIn(ExperimentalMaterial3Api::class)
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            AlternoTubeTheme {
                // A surface container using the 'background' color from the theme
                Surface(
                    modifier = Modifier.fillMaxSize(),
                    color = MaterialTheme.colorScheme.background
                ) {
                    Scaffold(
                        topBar = {
                            TopAppBar(
                                title = {
                                    Text(
                                        stringResource(id = R.string.app_name),
                                        maxLines = 1,
                                        overflow = TextOverflow.Ellipsis
                                    )
                                },
                            )
                        },
                        content = { innerPadding ->
                            MyAppTheme(modifier = Modifier.padding(innerPadding))
                        }
                    )
                }
            }
        }
    }

问题是,当我运行应用程序时,TopAppBar 没有颜色:

而在预览图像上,应用栏确实有颜色:

接下来我可以尝试什么来获得正确的颜色?

【问题讨论】:

    标签: android kotlin android-jetpack-compose jetpack android-jetpack-compose-material3


    【解决方案1】:

    M3TopAppBar 中背景颜色的默认值定义在TopAppBarDefaults.smallTopAppBarColors()containerColor属性。默认值是您的主题中定义的 surface 颜色。

    检查您的主题,或者您可以使用以下内容覆盖它:

    TopAppBar(
        title = {
            Text(
                stringResource(id = R.string.app_name),
                maxLines = 1,
                overflow = TextOverflow.Ellipsis
            )
        },
        colors = TopAppBarDefaults.smallTopAppBarColors(containerColor = Yellow)
    )
    

    【讨论】:

    • 感谢您的回答,如何更改我的颜色以使其与图像中的颜色相匹配?
    • 为什么我的表面颜色不是示例中的颜色?我做了一个正常的项目设置,你知道我可以复制粘贴以获得这些配置吗?
    • 您可以从文档开始:m3.material.io/styles/color/the-color-system/…surface颜色中定义的默认值目前是=Neutral99 = Color(red = 255, green = 251, blue = 254)
    • 感谢您提供链接,我认为这可能是一个内部错误——应该不是是默认的surface颜色。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-03
    • 1970-01-01
    • 2022-10-22
    • 2023-04-02
    • 2021-01-30
    • 1970-01-01
    • 2022-11-13
    相关资源
    最近更新 更多