Android主题传承

Android theme inheritance

我有一个基本主题和一个派生主题,如何更改继承主题中的自定义样式?

我目前正在尝试的是:

这是我的按钮

<Button
    style="globalButtonStyle"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

这些是样式

<resources>

    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <item name="globalButtonStyle">@style/myCoolButtonStyle1</item>
    </style>

    <style name="MyCoolAppTheme" parent="AppTheme">
        <item name="globalButtonStyle">@style/myCoolButtonStyle1</item>
    </style>

    <style name="myCoolButtonStyle1">
        <item name="android:background">@android:color/holo_red_dark</item>
    </style>

    <style name="myCoolButtonStyle2">
        <item name="android:background">@android:color/holo_blue_dark</item>
    </style>

</resources>

如何使用 "globalButtonStyle" 作为按钮的样式?

背景是我想为多个客户打造不同的应用品牌。

您需要声明您的自定义属性

<resources>
   <attr name="globalButtonStyle" format="reference" />
</resources>

styles.xml同

你的按钮声明将是下一个

<Button
    style="?attr/globalButtonStyle"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />