2017-04-21 79 views
1

我有兩種風格,給他們打電話A和B.是否有可能之一:是否可以將多個樣式合併爲一個?

  1. 他們都適用於相同的用戶界面元素,或

  2. 兩者結合成一個單一的風格(基本上只是讓我 完成1))

我知道,風格可以從父母繼承,所以我可以做一些喜歡做的是從A繼承了C風格,並從複製的所有屬性STYL e B轉換成C風格。但是這相當於打敗了我要做的事情 - 我將樣式分爲A和B兩種樣式,以避免重複代碼,並將屬性複製到C中完全廢棄。

+2

樣式不支持多重繼承。同時相關:https://stackoverflow.com/questions/12614707/android-xml-theme-inheriting-from-two-parent-themes – akash93

回答

1

繼承多個樣式不被支持。但是,您可以創建基本樣式,其中包含AB中的所有相同內容。然後從它繼承。

<style name="SuperTheme" parent="android:Theme"> 
    <!--All the attributes that A and B will have in common. --> 
</style> 

<style name="A" parent="SuperTheme"> 
    <!--Unique attributes only in A. --> 
</style> 

<style name="B" parent="SuperTheme"> 
    <!--Unique attributes only in B. --> 
</style> 
+0

這並沒有解決我的問題。我正在尋找一種將樣式A和B的所有屬性合併爲一個的方法。基本上,我正在尋找一種A和B聯合的風格,而您的示例使用的是A和B的交集。不幸的是,這並沒有幫助。 – Mark

+0

@Mark由於樣式不存在多重繼承,因此您必須自己完成A和B的聯合。然而,當你開始這樣做時,你會注意到你有一種設計氣味,因爲你將失去靈活性。我仍然推薦我的方法。 –

+0

你的方法沒有解決我所說的問題。爲了說明這一點,讓我問你以下問題:如何使用你的方法將兩種樣式A和B的所有屬性應用於單個視圖? 你似乎僅僅是一般信奉風格的繼承,雖然它在某些情況下,一個有用的設計,它是完全垂直於我的問題。 – Mark

相關問題