стили множественного наследования - PullRequest
39 голосов
/ 15 июля 2010

Есть ли способ сделать стиль наследуемым от нескольких других стилей, вместо того, чтобы просто ограничиваться:

<style name="WidgetTextBase">
    <item name="android:typeface">serif</item>
    <item name="android:textSize">12dip</item>
    <item name="android:gravity">center</item>
</style>

<style name="BOSText" parent="WidgetTextBase">
    <item name="android:textColor">#051C43</item>
</style>

Я бы хотел, чтобы BOSText также наследовал от:

<style name="WidgetTextHeader">
    <item name="android:textStyle">bold</item>
<style>

Ответы [ 3 ]

28 голосов
/ 22 июля 2011

Нет, стили не поддерживают множественное наследование (по крайней мере, в Android 3.2).

4 голосов
/ 11 ноября 2016

Вы можете наследовать только один стиль. Однако вы также можете сделать наследуемый стиль наследуемым от другого стиля и т. Д .:

<style name="WidgetTextBase">
    <item name="android:typeface">serif</item>
    <item name="android:textSize">12dip</item>
    <item name="android:gravity">center</item>
</style>

<style name="WidgetTextHeader" parent="WidgetTextBase">
    <item name="android:textStyle">bold</item>
</style>

<style name="BOSText" parent="WidgetTextHeader">
    <item name="android:textColor">#051C43</item>
</style>

Вы не можете наследовать более одного стиля, но вы можете настроить цепочку наследования.

0 голосов
/ 25 февраля 2011

В теге style есть родительский атрибут, который должен позволять вам наследовать от других стилей ...

т.е.

<style name="CodeFont" parent="@style/WidgetTextBase">
   <item name="android:textStyle">bold</item>
</style>

http://developer.android.com/guide/topics/ui/themes.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...