结合安卓主题



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

我已经进行了以下样式设置(不是精确副本,我知道可以优化(:

<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 属性设置为经典或材料。这将按预期正确更改原色。但是,如果不手动将<style name="Button" parent="ButtonMaterial" />父设置更改为 ButtonClassic,我就无法更改按钮布局。是否可以以某种方式将此设置添加到我的经典和材质主题中以更改按钮布局?

此问题的最佳实践是创建两个构建变体,并在每个变体中自定义基本主题。 当您想要发布应用时,可以选择正确的构建变体。 此外,在您的开发时间,您只需在变体之间切换即可。

相关内容

  • 没有找到相关文章

最新更新