【发布时间】: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。这会按预期正确更改原色。但是,如果不手动将 <style name="Button" parent="ButtonMaterial" /> 父设置更改为 ButtonClassic,我就无法更改按钮布局。是否可以以某种方式将此设置添加到我的 Classic 和 Material 主题中以更改按钮布局?
【问题讨论】:
标签: android layout styles themes