Android textTousCaps dans le thème
J'ai un thème où sur les voulais tous les textviews sur les activités doivent être capitalisés. J'ai donc mis en textAllCaps dans un style et de l'appliquer ensuite à textViewStyle dans mon thème, comme ci-dessous
<style name="Widget.Apex.TextView" parent="android:Widget.TextView">
<item name="android:textAppearance">?android:attr/textAppearanceSmall</item>
<item name="android:textAllCaps">true</item>
</style>
<style name="MyTheme" parent="@android:style/Theme.Holo">
<item name="android:textViewStyle">@style/Widget.Apex.TextView</item>
</style>
Malheureusement, cela a pour effet de transformer mon de Titre de l'Application, ActionBar sous-titres, et popmenu éléments inscrits à l'actif. J'ai donc pensé que je viens de mettre la ActionBarStyle, textAppearanceLargePopupMenu, et textAppearanceSmallPopupMenu attributs dans mon thème pour avoir un style personnalisé avec textAllCaps=false. Toutefois, cela ne fonctionne pas. Je sais que mes thèmes sont appliquées parce que si j'ai mis textColor ou textStyle ils sont appliqués à des titres et des éléments de menu. Est-il possible de remplacer le textAllCaps dans ces styles?
<style name="Widget.Apex.TextView" parent="android:Widget.TextView">
<item name="android:textAppearance">?android:attr/textAppearanceSmall</item>
<item name="android:textAllCaps">true</item>
</style>
<style name="TextAppearance.Apex.Widget.ActionBar.Title" parent="android:TextAppearance.Holo.Widget.ActionBar.Title">
<item name="android:textAllCaps">false</item>
<item name="android:textStyle">italic</item>
</style>
<style name="TextAppearance.Apex.Widget.ActionBar.Subtitle" parent="android:TextAppearance.Holo.Widget.ActionBar.Subtitle">
<item name="android:textAllCaps">false</item>
<item name="android:textStyle">italic</item>
<item name="android:textColor">#FF0000</item>
</style>
<style name="TextAppearance.Apex.Widget.PopupMenu.Large" parent="android:TextAppearance.Holo.Widget.PopupMenu.Large">
<item name="android:textAllCaps">false</item>
<item name="android:textStyle">italic</item>
<item name="android:textColor">#FF0000</item>
</style>
<style name="TextAppearance.Apex.Widget.PopupMenu.Small" parent="android:TextAppearance.Holo.Widget.PopupMenu.Small">
<item name="android:textAllCaps">false</item>
<item name="android:textStyle">italic</item>
<item name="android:textColor">#FF0000</item>
</style>
<style name="Widget.Apex.ActionBar" parent="android:Widget.Holo.ActionBar">
<item name="android:titleTextStyle">@style/TextAppearance.Apex.Widget.ActionBar.Title</item>
<item name="android:subtitleTextStyle">@style/TextAppearance.Apex.Widget.ActionBar.Subtitle</item>
</style>
<style name="MyTheme" parent="@android:style/Theme.Holo">
<item name="android:actionBarStyle">@style/Widget.Apex.ActionBar</item>
<item name="android:textAppearanceLargePopupMenu">@style/TextAppearance.Apex.Widget.PopupMenu.Large</item>
<item name="android:textAppearanceSmallPopupMenu">@style/TextAppearance.Apex.Widget.PopupMenu.Small</item>
<item name="android:textViewStyle">@style/Widget.Apex.TextView</item>
</style>
Grâce,
Jonathan
source d'informationauteur J Chapman
Vous devez vous connecter pour publier un commentaire.
En utilisant AppCompat
textAllCaps
dans les Applications Android de support des anciennes API (moins de 14)Un travail autour de ce serait à définir explicitement le style comme ceci:
ou vous pouvez également utiliser un nouveau style qui hérite textViewStyle et ajoute le textAllCaps attribut, avec tous les autres styles de votre choix:
Dans la mise en page:
Remarque:
1> ce widget n'hérite d'aucune styles par défaut sont définies dans votre thème via
android:textViewStyle
2>en Utilisant ce widget semble avoir donné le nom du package sens ce n'est pas vraiment prévu pour l'API publique. C'est pas "complètement cuit" dans le
textAllCaps
attribut doit être directement sur le style/la vue et ne peut pas être dans la textAppearance style pour que cela fonctionne.Essayer avec les deux
textAllCaps
etandroid:textAllCaps
.Mais je pense que c'est le travail juste avec la conception de la bibliothèque 23.2.0 ou plus tard.