Wie wendet man zwei verschiedene Stile zu einem element in android?
Ich habe eine TextView, und ich will einen Stil, die ich für alle TextView-Elementen plus einen anderen Stil, die ich nur innerhalb einer bestimmten Aktivität. Gibt es irgendeine Möglichkeit, das zu tun?
InformationsquelleAutor der Frage Bruiser | 2011-01-31
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einen Stil unter Android können in einer parent-Stil.
Also nur noch
MyActivityTextView
definierenGeneralTextView
als Elternteil Stil und ändern/fügen Sie die style-Eigenschaften.Dann können Sie
MyActivityTextView
für einige Ansichten undGeneralTextView
für die anderen.Es ist beschrieben in Definieren Von Stilen.
InformationsquelleAutor der Antwort Peter Knego
Nur ein kleines Stück von Informationen, die möglicherweise die gesamte Wert in Frage, schamlos kopiert von: http://developer.android.com/guide/topics/ui/themes.html#DefiningStyles
Wenn Sie möchten, dass die Vererbung von Formatvorlagen, die Sie definiert haben, müssen Sie sich, haben Sie nicht verwenden die übergeordnete Attribut. Stattdessen nur als Präfix den Namen der Formatvorlage, die Sie wollen, um zu Erben, um den Namen des neuen Stils, durch einen Punkt getrennt. Zum Beispiel, um einen neuen Stil erstellen, erbt die CodeFont Stil, die oben definiert werden, sondern die Farbe rot können Sie Autor den neuen Stil wie diese:
Feststellen, dass es kein parent-Attribut in den Tags, aber da das name-Attribut beginnt mit der CodeFont Stil name (das ist ein Stil, den Sie erstellt haben), ist dieser Stil erbt alle style-Eigenschaften aus, die Stil. Dieser Stil setzt dann die android:textColor-Eigenschaft, um den text rot. Können Sie auf diesen neuen Stil als " @style/CodeFont.Red.
Können Sie weiter vererben, wie dies so oft wie Sie möchten durch die Verkettung von Namen mit Perioden. Zum Beispiel, können Sie erweitern CodeFont.Rot, größer zu werden, mit:
InformationsquelleAutor der Antwort Bruiser
Verlängern Sie einen Stil auf ein anderes in Ihrem style.xml:
InformationsquelleAutor der Antwort Vladimir Ivanov