2015-07-21 85 views
0

我有一個Android項目使用另一個作爲庫。到目前爲止,我一直在使用Maven開發Eclipse,現在我想遷移到Android Studio和Gradle。 的問題是,我用它來執行以下操作在Eclipse:Android studio多個項目風格問題

庫項目:

<style name="some_theme"> 
    <item name="android:textColor">#00FF00</item> 
</style> 

然後在我的主要項目:

<style name="some_theme"> 
    <item name="android:typeface">monospace</item> 
</style> 

因此,如果主題名稱是在Eclipse中也一樣我在兩個主題中都定義了什麼,但在Android Studio中我只能得到主項目上的內容

有人遇到此類問題b安伏?有人知道解決方法嗎? (其他不僅僅是複製所有什麼在庫項目...)

問候

何塞

回答

-1

這不應該工作。當您在兩個不同的位置定義兩個具有相同名稱的樣式時,應該遇到命名衝突。沒有文檔樣式資源合併功能。它在Eclipse中使用ADT工作的事實可能是偶然的。

正確的方法是在庫中定義一種樣式,並在應用程序中從該樣式繼承。

例如,在你的庫項目:

<style name="SomeThemeBase"> 
    <item name="android:textColor">#00FF00</item> 
</style> 
在您的應用程序項目

然後:

<style name="AppTheme" parent="SomeThemeBase"> 
    <item name="android:typeface">monospace</item> 
</style> 

這樣,您就不能創建一個命名衝突,但你的應用程序的主題仍然繼承的屬性你在基本主題上定義。

+0

在Eclipse/Maven中,它將樣式合併得很漂亮,似乎很奇怪它會偶然發生。有人會認爲這是Android Studio/Gradle中的一個缺失功能​​,或者是我缺少的一些配置。 我一直無法找到一些關於此的「官方」文檔。 –

+0

事實上,它是一個無證的「功能」是什麼告訴我這是一個錯誤。如果它是一個真實的特徵,那麼需要有關哪種風格具有優越性的文檔。 –

+0

我實際上在多個項目中使用這個庫項目,我做的其他事情是在每個項目的相同樣式上添加不同的parent =「...」。由於主題不支持多繼承,我只是不能使用你的解決方案... –