J'essaie d'apprendre à styliser mon application à l'aide du fichier styles.xml et j'ai besoin de quelques éclaircissements sur certaines choses pour le comprendre.
Dans un élément, quelle est la différence entre la définition
android:actionbarstyle
et justeactionbarstyle
? Je sais que dans ce cas particulier, je dois définir les deux, mais pourquoi? Et qu'en est-il de tous les autres cas, par exempleandroid:colorPrimary
et justecolorPrimary
? Dans ce cas, je reçois une erreur en disant queandroid:colorPrimary
ne peut être utilisé qu'avec le niveau 21 d'API minimum. Quelqu'un a-t-il une bonne explication surandroid:
préfixe et comment cela affecte mon application?Existe-t-il une référence aux différents styles parents, tels que
parent="@style/Widget.AppCompat.Light.ActionBar
et que signifient-ils? Comment puis-je trouver une liste des différents styles parent disponibles pour un élément spécifique et ce que je peux "remplacer" en eux? En ce moment, c'est surtout deviner de ma part ....
À titre de référence, je publie mon fichier styles.xml actuel.
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="AppTheme" parent="MyTheme"/>
<style name="MyTheme" parent="Theme.AppCompat.Light">
<item name="actionBarTheme">@style/MyTheme.ActionBarTheme</item>
<item name="android:actionBarStyle">@style/MyTheme.ActionBarStyle</item>
<item name="actionBarStyle">@style/MyTheme.ActionBarStyle</item>
<item name="colorPrimary">@color/my_green</item>
<item name="colorPrimaryDark">@color/my_forest</item>
<item name="colorAccent">@color/my_soil</item>
<item name="drawerArrowStyle">@style/MyTheme.DrawerArrowStyle</item>
<item name="android:actionOverflowButtonStyle">@style/MyTheme.OverFlow</item>
<item name="android:actionMenuTextColor">@color/white</item>
<item name="homeAsUpIndicator">@drawable/abc_ic_ab_back_mtrl_am_alpha</item>
<item name="android:homeAsUpIndicator">@drawable/abc_ic_ab_back_mtrl_am_alpha</item>
<item name="colorControlNormal">@color/my_green</item>
<item name="colorControlActivated">@color/my_forest</item>
<item name="colorControlHighlight">@color/my_deep_green</item>
</style>
<style name="MyTheme.ActionBarTheme" parent="@style/ThemeOverlay.AppCompat.ActionBar">
<!-- This sets the BACK arrow to white. Otherwise it"s black. Must be placed in the theme-->
<item name="colorControlNormal">@color/white</item>
</style>
<style name="MyTheme.ActionBarStyle" parent="@style/Widget.AppCompat.Light.ActionBar">
<item name="android:background">@color/my_green</item>
<item name="background">@color/my_green</item>
<item name="android:titleTextStyle">@style/MyTheme.ActionBar.TitleTextStyle</item>
<item name="titleTextStyle">@style/MyTheme.ActionBar.TitleTextStyle</item>
<item name="colorControlNormal">@color/white</item>
</style>
<style name="MyTheme.ActionBar.TitleTextStyle" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title">
<item name="android:textColor">@color/white</item>
</style>
<style name="MyTheme.DrawerArrowStyle" parent="Widget.AppCompat.DrawerArrowToggle">
<item name="spinBars">true</item>
<item name="color">@color/white</item>
</style>
<style name="MyTheme.OverFlow" parent="Widget.AppCompat.ActionButton.Overflow">
<item name="android:tint">@color/white</item>
</style>
</resources>
Réponses:
2 pour la réponse № 1Je ferai de mon mieux pour expliquer et me concentrerai sur:
<item name="colorPrimary">@color/my_green</item>
<item name="colorPrimaryDark">@color/my_forest</item>
<item name="colorAccent">@color/my_soil</item>
Ces attributs sont régulièrement disponibles avec le niveau 21 de l'API. En général, vous utilisez des attributs avec le préfixe "android".
Si vous définissez tous vos styles dans le styles.xml de votre dossier de valeurs et si vous utilisez une application compatible, vous avez besoin des deux.
Sans le préfixe, les attributs s'appliquent aux appareils pré L. c'est-à-dire compatible avec les applications. Pour le faire fonctionner pour les appareils L et supérieurs, vous devez spécifier à nouveau l'attribut avec le préfixe "android".
Et pour obtenir les autres styles Android, vous pouvez les utiliser, comme vous entrez dans les classes et les implémentations. Pour Mac, j'appuie sur le bouton de commande, puis je clique avec la souris sur le style spécifique.