Ich bin ein Anfänger in Android-Entwicklung und, obwohl Codierung macht Sinn, Android-Themen IMHO nicht
Ich habe Probleme beim Implementieren dieser einfachen Aufgabe:
Ich habe (zum Beispiel) eine Farbe namens "blah"
%Vor%wird überall in XML-Layouts oder Code und von verschiedenen View-Components als "@ color / blah"
verwendetIch möchte diesen Farbwert einfach pro Thema ändern
Wenn ich also MyTheme1 verwende, sollte blah # F0F0F0 sein und wenn ich MyTheme2 verwende, sollte blah # 00FF00
seinIch habe über Themen gelesen und kann immer noch nicht herausfinden, wie ich diese einfache Aufgabe implementieren kann, da meine App keine speziellen Stile usw. benötigt, nur Farben pro Thema.
Danke im Voraus
UPDATE:
Nach dem Link von Mohamed_AbdAllah gelang es mir, einige zu erstellen benutzerdefinierte Farben, indem Sie sie in attrs.xml und styles.xml definieren:
attrs.xml
%Vor%styles.xml
%Vor%Aber jetzt entsteht ein viel ernsthafteres Problem
Ich kann die Farbe "color_item_title" in jeder Ansicht erfolgreich verwenden, so dass Schaltflächen und Text tatsächlich diese Farbe erhalten.
Aber verwenden Sie das "color_item_title" in benutzerdefinierten Zeichen- oder Listenansichtslayouts (DAS SIND ANSICHTEN, DIE IN RUNTIME INFLATIERT WERDEN) verursacht einen Absturz.
Wenn Sie also "color_item_title" in einem Listview-Listenelement verwenden, stürzt das Layout ab Laufzeit mit einer Inflator Nachricht an dieser Zeile :(
Es stürzt auch bei meinen Zeichen ab: (Inflationsfehler erneut)
%Vor%Nachdem ich gesucht und versucht habe, habe ich den Tipp bekommen, dass es einige Dinge gibt, die man tun kann und einige Dinge, die man nicht kann .
Sie können
a) Definieren Sie Ihre eigenen Attribute in attrs
%Vor%b) Legen Sie ihre Werte in Ihrer styles.xml
fest %Vor%c) Verwenden Sie sie in einer beliebigen Ansicht als? color_gallery_backround oder? attr / color_gallery_backround zum Beispiel
%Vor%DU KANNST
a) Sie können auf dieses Attribut nicht über benutzerdefinierte Zeichnungsobjekte zugreifen, da sie während dieser Zeit nicht gültig sind Inflation
so Sie können nicht verwenden? attr / color_gallery_backround hier:
customhape.xml
%Vor%b) Sie können nicht auf dieses Attribut in einer Ansicht zugreifen, die während (zum Beispiel) aufgebläht wird eine ListView als ListItem-Ansicht
So hat das Thema "Unterstützung" für Attribute bis mindestens API 10 Tiefenbegrenzungen.
Lösungen
Wie vorgeschlagen, müssen Sie ZWEI separate Zeichenvorlagen mit verschiedenen Farben erstellen und Attribute einrichten, um diese Zeichenfolgen nach Thema zu referenzieren:
attrs.xml
%Vor%und für jedes Thema, Setup, welches tatsächlich in styles.xml zu verwenden ist:
%Vor%Sie können nun auf Ihr Zeichenwerkzeug als "gerundetes_Hintergrund" verweisen und es vom Thema auswählen lassen.
Für überhöhte Ansichten in ListView-Listenlayouts müssen Sie Farben programmgesteuert festlegen.
Tags und Links android android-layout themes android-theme