gpt4 book ai didi

android - v19/v21 中的重复样式

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:57:09 25 4
gpt4 key购买 nike

我的 styles.xml 中有这个:

<style name="UserTheme" parent="ThemeBase">
<item name="android:editTextStyle">@style/EditTextTheme</item>
</style>

为什么我必须在 v19/styles.xmlv21/styles.xml 中重复 editTextStyle 行。

v21/styles.xml:

<style name="UserTheme" parent="ThemeBase">
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowTranslucentNavigation">true</item>
<item name="android:editTextStyle">@style/EditTextTheme</item>
</style>

有没有办法只在主 styles.xml 中调用它并将它应用到所有地方,这样我就不必多次编写它?

最佳答案

我找不到任何推荐的解决方案,所以我深入研究了 AppCompat 源代码。他们的做法是这样的。

在你的 styles.xml 中

    <style name="Base.V7.Theme.YourThemeName" parent="Theme.AppCompat.Light.NoActionBar">
</style>

<style name="Base.Theme.YourThemeName" parent="Base.V7.Theme.YourThemeName" />

<style name="Theme.YourThemeName" parent="Base.Theme.YourThemeName" >
<item name="colorPrimary">@color/primary</item>
<item name="colorPrimaryDark">@color/primary_dark</item>
<item name="colorAccent">@color/accent</item>
</style>

在你的 styles-v21.xml 中

    <style name="Base.V21.Theme.YourThemeName" parent="Base.V7.Theme.YourThemeName">
<item name="android:navigationBarColor">@color/white</item>
<item name="android:windowTranslucentStatus">true</item>
</style>
<style name="Base.Theme.YourThemeName" parent="Base.V21.Theme.YourThemeName" />

在你的 styles-v22.xml 中

    <style name="Base.V22.Theme.YourThemeName" parent="Base.V21.Theme.YourThemeName">
<item name="android:navigationBarColor">@color/black</item>
<item name="android:windowTranslucentStatus">false</item>
</style>
<style name="Base.Theme.YourThemeName" parent="Base.V22.Theme.YourThemeName" />

对于每个新版本,您都扩展了以前的基础版本。如果您想覆盖不同版本的任何属性,只需将其放在新 styles-vXX.xml 文件的 Base.VXX.Theme.YourThemeName block 中即可。

关于android - v19/v21 中的重复样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32725616/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com