【问题标题】:XML preview color is different from the actual app anddroidXML预览颜色与实际应用android不同
【发布时间】:2021-03-31 03:59:59
【问题描述】:

我创建了一个项目并在 activity_main.xml 中添加了 2 个按钮,但它们在布局预览和实际应用程序中具有不同的颜色。怎么会?

主题下有2个文件:

主题.xml:

<resources xmlns:tools="http://schemas.android.com/tools">
    <!-- Base application theme. -->
    <style name="NecklaceShowcase" parent="Theme.MaterialComponents.Light.NoActionBar" >
        <!-- Primary brand color. -->
        <item name="colorPrimary">@color/purple_500</item>
        <item name="colorPrimaryVariant">@color/purple_700</item>
        <item name="colorOnPrimary">@color/white</item>
        <!-- Secondary brand color. -->
        <item name="colorSecondary">@color/teal_200</item>
        <item name="colorSecondaryVariant">@color/teal_700</item>
        <item name="colorOnSecondary">@color/black</item>
        <!-- Status bar color. -->
        <item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
        <!-- Customize your theme here. -->
    </style>
</resources>

和themes.xml(夜间)

<resources xmlns:tools="http://schemas.android.com/tools">
    <!-- Base application theme. -->
    <style name="NecklaceShowcase">
        <!-- Primary brand color. -->
        <item name="colorPrimary">@color/purple_200</item>
        <item name="colorPrimaryVariant">@color/purple_700</item>
        <item name="colorOnPrimary">@color/black</item>
        <!-- Secondary brand color. -->
        <item name="colorSecondary">@color/teal_200</item>
        <item name="colorSecondaryVariant">@color/teal_200</item>
        <item name="colorOnSecondary">@color/black</item>
        <!-- Status bar color. -->
        <item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
        <!-- Customize your theme here. -->
    </style>
</resources>

【问题讨论】:

    标签: java android kotlin user-interface


    【解决方案1】:

    布局预览使用您在themes.xml 文件中设置的主题。

    当您运行该应用程序时,btn2 将切换为红色,因为在您的 activity_main.xml 中,它将其背景设置为:halo_red_light

    我不知道为什么另一个按钮变为灰色,这可能是在您的活动类中设置的。

    您可以阅读更多here

    【讨论】:

    • 那么我怎样才能在使用主题的同时还能正常看到预览呢?
    • @Behnawwm 删除 btn2 的背景属性,这将从按钮中删除红色。但是,您没有包含活动类代码,我怀疑您在创建按钮时设置了样式,因此它们将替换您的主题并显示为灰色。如果您编辑您的帖子,请包含活动代码并通知我,我会查看。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-16
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-18
    相关资源
    最近更新 更多