Ich konnte alle Designs überschreiben, deren Namen "android:" vorangestellt sind, aber die themes.xml von Android definiert auch Eigenschaften, die nicht überschrieben werden können. Zum Beispiel:
%Vor%colorBackground ist in der Theme.Light-XML definiert, aber das Hinzufügen von diesem gibt mir ein
%Vor%Fehler. Wie überschreibe ich diesen Stil für die Anwendung als Ganzes?
Ohne das Präfix attr wird Ihr colorBackground zu einem Attribut, das Sie definieren müssen. Betrachten Sie das folgende Beispiel, in dem theme_dependent_icon
in einem styles.xml
definiert ist:
Dann können Sie das Attribut über ?attr/theme_dependent_icon
in Ihrem main_activity.xml
:
Da in diesem Beispiel die benutzerdefinierten Designnamen MyDarkTheme
und MyLightTheme
verwendet wurden, müssen sie während onCreate
Ihrer Hauptaktivität vor setContentView
ausgewählt werden, d. h.
Das Aufrufen von setTheme () ist eine Möglichkeit, ein Thema zur Laufzeit auszuwählen. Eine weitere Möglichkeit besteht darin, mehrere Versionen von styles.xml
in Ihren Ressourcen unter den Optionen values
, values-11
, values-14
entsprechend dem Standardthema, Theme für Android 3.0 (API-11) und Theme für Android 4.0 (API-14) zu definieren ).