如何组合两个独立的android样式来创建一个新样式

时间:2016-09-02 17:44:38

标签: android android-layout android-theme android-styles

这个问题已被多次询问,但问题不够准确,或者答案没有回答我的想法。这是我的问题。我有两种风格

  • HorseAppearance
  • DonkeyAppearance

他们是独立的风格。现在我想将它们组合成另一种称为MuleAppearance的样式,而该样式又可能有自己的属性。我该怎么办

例如(请不要分心)以下不起作用

<style name="HorseAppearance.MuleAppearance" parent="DonkeyAppearance">
....
</style>

2 个答案:

答案 0 :(得分:1)

由于缺少答案或文档,我想您会做类似的事情:

<style name="IndependentOne">
  //items
</style>
<style name="IndependentTwo">
  //items
</style>
 <style name="IndependentOne.IndependentTwo">
  //items from IndepedentTwo
</style>

这样,您便可以在任何地方使用两种独立的样式,并在适用的情况下将两者结合使用

答案 1 :(得分:0)

我不确定您最终想要组合 3(HorseAppearance + DonkeyAppearance + MuleAppearance)或仅 2 种样式(有时是 HorseAppearance + MuleAppearance,有时是 DonkeyAppearance + MuleAppearance。

合并例如HorseAppearance + MuleAppearance...

// AndroidManifest.xml
<application ... android:theme="@style/HorseAppearance" ...>
// src/mule/res/values/styles.xml
<style name="MuleAppearance">
    ...
</style>
// src/horse/res/values/styles.xml
<style name="HorseAppearance" parent="MuleAppearance">
    ...
</style>

合并 DonkeyAppearance + HorseAppearance + MuleAppearance...

// AndroidManifest.xml
<application ... android:theme="@style/DonkeyAppearance" ...>
// src/mule/res/values/styles.xml
<style name="MuleAppearance">
    ...
</style>
// src/horse/res/values/styles.xml
<style name="HorseAppearance" parent="MuleAppearance">
    ...
</style>
// src/donkey/res/values/styles.xml
<style name="DonkeyAppearance" parent="HorseAppearance">
    ...
</style>