Remplacer Android par défaut des thèmes
J'ai été en mesure de remplacer tous les thèmes qui ont des noms avec "android:" ajouté à eux, mais la Android themes.xml définit également des propriétés qui ne semblent pas être en mesure d'être redéfinie. Par exemple:
<!-- Variation on the Light theme that turns off the title -->
<style name="Theme.Codebase" parent="android:style/Theme.Light">
<item name="android:windowNoTitle">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="colorBackground">@color/off_white</item>
</style>
colorBackground est défini dans le Thème.La lumière xml, mais l'ajout de cette ici me donne un
/res/values/styles.xml:10: error: Error: No resource found that matches the given name: attr 'colorBackground'.
erreur. Comment puis-je remplacer le style que pour l'ensemble de la Demande?
Ces balises sans android: semblent être définie à l'intérieur d'attr des fichiers xml dans le même res/valeurs dans le dossier source android. android.git.kernel.org/?p=platform/frameworks/... Regardez attrs.xml et attrs_manifest.xml je pense que vous avez besoin pour l'importation de ces quelque sorte, à l'aide xmlns, ou les fichiers similaires ajouter à vos valeurs de dossier, mais je ne sais pas assez sur xml pour en être sûr.
OriginalL'auteur typeoneerror | 2011-01-28
Vous devez vous connecter pour publier un commentaire.
Vous pouvez remplacer les attributs standard de la même manière que vous avez modifié les propriétés telles que la
windowNoTitle
, il suffit de ne pas oublier d'ajouterandroid:
préfixe comme ceci:Ce que je peux dire. Il définit
colorBackgroundCacheHint
paramètre, qui est utilisé dansListView
styles pour effectuer certaines optimisations basées sur l'hypothèse que les points de vue sont toujours tiré sur un solide arrière-plan de couleur. Outre qu'il semble y avoir aucune utilisation de cet attribut. Ce qui est plus important est lewindowBackground
attribut qui, comme son nom l'indique, définit le fond de la fenêtre.OriginalL'auteur Malcolm
Sans l'attr préfixe, votre colorBackground devient un attribut que vous devez définir. Considérons l'exemple suivant où
theme_dependent_icon
est définie dans unstyles.xml
:Ensuite, vous pouvez utiliser l'attribut via
?attr/theme_dependent_icon
dans votremain_activity.xml
:Dans cet exemple, parce que j'ai utilisé thème personnalisé noms
MyDarkTheme
etMyLightTheme
, ils doivent être sélectionnés au cours deonCreate
de votre activité principale avantsetContentView
, c'est à direAppel setTheme() est un moyen de sélectionner un thème au cours de l'exécution. Une autre façon consiste à définir plusieurs versions de
styles.xml
dans vos ressources sous lavalues
,values-11
,values-14
correspondant à thème par défaut, le thème pour Android 3.0 (API-11) et un thème pour Android 4.0 (API 14).OriginalL'auteur Stephen Quan