【问题标题】:Combine Android Themes结合 Android 主题
【发布时间】:2020-01-19 05:25:21
【问题描述】:

我正在更新我的应用程序以使用材料设计,但对于某些客户来说,至少在一段时间内仍然需要使用旧设计。所以我试图找到一种在这两种设计之间切换的简单方法。

我已经做了以下样式设置(不是完全复制,我知道,可以优化):

<style name="Def">
    <item name="android:colorAccent">#eeaa00</item>
</style>

<style name="Classic" parent="Def">
    <item name="android:colorPrimary">#eeeeee</item>
</style>

<style name="Material" parent="Def">
    <item name="android:colorPrimary">#888888</item>
</style>

<style name="ButtonClassic">
    <item name="android:background">@drawable/background_button</item>
    <item name="android:elevation">2dp</item>
    <item name="android:layout_width">wrap_content</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:padding">5dp</item>
    <item name="android:gravity">center</item>
    <item name="android:clickable">true</item>
</style>

<style name="ButtonMaterial" parent="Widget.AppCompat.Button">
    <item name="android:minHeight">0dp</item>
    <item name="android:minWidth">0dp</item>
    <item name="android:layout_width">wrap_content</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:padding">10dp</item>
    <item name="android:gravity">center</item>
    <item name="android:clickable">true</item>
</style>

<style name="Button" parent="ButtonMaterial" />

我的按钮布局 xml:

<androidx.appcompat.widget.AppCompatButton style="@style/Button" />

我想实现以下目标: 为了在设计之间进行更改,我将 AndroidManifest application.theme 属性设置为 Classic 或 Material。这会按预期正确更改原色。但是,如果不手动将 &lt;style name="Button" parent="ButtonMaterial" /&gt; 父设置更改为 ButtonClassic,我就无法更改按钮布局。是否可以以某种方式将此设置添加到我的 Classic 和 Material 主题中以更改按钮布局?

【问题讨论】:

    标签: android layout styles themes


    【解决方案1】:

    解决此问题的最佳做法是创建两个构建变体,并在每个变体中自定义基本主题。 当您想发布您的应用程序时,您可以选择正确的构建变体。 在您的开发过程中,您也可以简单地在您的变体之间切换。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-31
      • 1970-01-01
      • 1970-01-01
      • 2015-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多