我有一組類似的應用程序。我將公共資源和代碼提取到庫項目和應用程序中,只是覆蓋他們需要的內容。在我的圖書館有規定的下列方式:如何覆蓋(或隱藏)Android庫項目中定義的樣式屬性?
<style name="ListItemText">
<item name="android:layout_toRightOf">@id/preview_image</item>
<item name="android:textStyle">bold</item>
<item name="android:textSize">@dimen/previewTextSize</item>
</style>
正如你可以看到它包含android:layout_toRightOf
屬性,因爲風格將被應用到ListView行中的文本應顯示的圖像的,正確的行。
但是,在我的一個應用程序中,我想在圖像下方顯示文本。如何定義該應用程序中的ListItemText
樣式以覆蓋android:layout_toRightOf
屬性值並將其替換爲android:layout_below
?
如果我把它定義爲:
<style name="ListItemText">
<item name="android:layout_below">@id/preview_image</item>
</style>
它顯示的文字到圖像右側和下方,有效地總結來自庫和應用程序樣式屬性個XML。
P.S:我的問題的一個可能的解決辦法是在風格擺脫android:layout_toRightOf
並將其移動到佈局XML來代替。然後在目標應用程序中,可以重新定義/覆蓋此佈局。但是我正在尋找基於樣式的解決方案,因爲它可以提供更簡單直接的屬性覆蓋方式。
(我也可以使用parent
屬性的繼承樣式,但這會再次要求應用程序中的佈局覆蓋,我試圖避免)。
我在做類似的東西在這裏! http://stackoverflow.com/questions/17103894/overriding-referenced-style-attributes – toobsco42