Gewusst wie: überschreiben (oder ausblenden) style-Attribute definiert, die in der Android-library-Projekt?

Habe ich eine Reihe von ähnlichen Anwendungen. Ich extrahierten gemeinsamen Ressourcen und code, um das Bibliothek-Projekt, und Anwendungen nur überschreiben, was Sie brauchen. In meiner Bibliothek gibt es die folgenden definierten Stil:

<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>

Wie Sie sehen können enthält es android:layout_toRightOf - Attribut, wie in diesem Stil angewendet werden, um den text in der ListView-Zeile angezeigt werden sollen, rechts neben dem Bild in die Zeile.

Aber in einer meiner Anwendungen, die ich möchte, um die Anzeige der text unter dem Bild. Wie die ListItemText Stil in der Anwendung definiert werden, überschreiben android:layout_toRightOf - Attribut-Wert, und ersetzen Sie es mit android:layout_below?

Wenn ich es definieren als:

<style name="ListItemText">
    <item name="android:layout_below">@id/preview_image</item>
</style>

zeigt es text rechts und unter dem Bild, effektiv fasst Attribute aus beiden-Bibliothek und die Anwendung von Stilen XMLs.

p.s.: Eine mögliche Lösung für mein Problem wäre, um loszuwerden android:layout_toRightOf im Stile und verschieben Sie es in den layout-xml statt. Dann in der Ziel-Applikation das layout neu definiert/überschrieben. Aber ich bin auf der Suche nach Stil-basierte Lösung, denn es konnte mehr als eine einfache Art und Weise von Attribut überschreiben.

(Ich kann auch mit der geerbte Stil mit der parent Attribut, aber das würde wieder erfordern, layout überschreiben in der Anwendung, die ich versuche zu vermeiden).

InformationsquelleAutor Idolon | 2011-10-15
Schreibe einen Kommentar