如何在不重复Android代码的情况下为多个平台应用样式?

时间:2015-04-30 20:38:45

标签: android android-5.0-lollipop

我的Android应用支持返回API级别15并且目标是API级别21.对于一种样式,我想添加在v16中添加的属性,然后在v21中添加。除了在v21中复制v16属性之外,还有更好的方法吗?使用下面的代码,v21设备将不具有从v16样式应用的字体系列。

值/样式

<style name="message" parent="message_base" />

<style name="message_base">
    <item name="android:layout_width">match_parent</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:textColor">@color/primary</item>
    <item name="android:textSize">36sp</item>
</style>

值-V16 /样式

<style name="message" parent="message_base">
    <!-- Attribute introduced in v16 -->
    <item name="android:fontFamily">sans-serif-thin</item>
</style>

值-V21 /样式

<style name="message" parent="message_base">
    <!-- Attribute introduced in v21 -->
    <item name="android:elevation">4dp</item>
</style>

布局/视图

...
<TextView 
    style="@style/message" 
    android:text="@string/my_message" />
...

我保持示例代码非常简单,但想象一下基本样式中使用的更多属性,以及可能必须重复的v16样式。

0 个答案:

没有答案