2015-03-16 1 views
7

J'ai un style à utiliser « monospace » dans mon Android App:Qu'est-il arrivé à Monospace dans Android Lollipop?

<?xml version="1.0" encoding="utf-8"?> 
<resources xmlns:android="http://schemas.android.com/apk/res/android"> 
    <!-- Base application theme. --> 
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar" > 
     <!-- Customize your theme here. --> 
     <item name="android:windowNoTitle">true</item> 
     <item name="android:typeface">monospace</item> 
     <item name="android:textColorPrimary">@android:color/white</item> 
     <item name="android:itemTextAppearance">@style/MenuText</item> 
    </style> 

    <style name="M13Text"> 
     <item name="android:typeface">monospace</item> 
     <item name="android:textColor">@android:color/white</item> 
     <item name="android:textColorLink">@android:color/holo_red_light</item> 
    </style> 

    <style name="MenuText"> 
     <item name="android:typeface">monospace</item> 
     <item name="android:textColor">@android:color/black</item> 
    </style> 
</resources> 

Tout était bien jusqu'à ce que Lollipop est arrivé quand il ne semble pas utiliser la police Monospace plus et je peux le voir changer quand je feuillette les API de 19 à 21 dans Android Studio. J'ai cherché sur google et je n'ai rien trouvé et j'apprécie que ce soit juste un problème cosmétique, mais quelqu'un a-t-il des idées sur pourquoi?

+0

Je n'ai aucun problème à utiliser 'monospace' sur Android 5.0. [Cet exemple d'application] (https://github.com/commonsguy/cw-omnibus/tree/master/Fonts/FontSampler) fonctionne très bien sur un Nexus 4 - je viens de le tester. – CommonsWare

+0

Merci @CommonsWare. Curieuse. Je suis évidemment en train de faire quelque chose de mal, car définir la police directement ne fonctionne pas non plus ... Je me demande si c'est l'attribut parent qui surcharge quelque chose? –

+0

Avez-vous essayé de configurer 'android: fontFamily =" @ null "'? – alanv

Répondre

21

Les apparitions de texte matériel spécifient l'attribut android:fontFamily plutôt que android:typeface afin qu'ils puissent utiliser sans-serif-light, sans-serif-medium, etc. Cet attribut a la priorité sur caractères, de sorte que vous devrez soit remplacer ou effacer la valeur fontFamily.

<style name="MenuText"> 
    <item name="android:fontFamily">monospace</item> 
    ... 
</style> 
+2

Merci @alanv! Cela m'a donné la solution ' monospace monospace' fait l'affaire. –

+0

En effet, l'android: fontFamily devrait être réglé sur "monospace" et non sur @null. Pour un réglage unique de monospace, vous pouvez également ajouter android: fontFamily = "monospace" en tant que propriété à votre dans votre mise en page xml au lieu de définir un style pour cela. Ce n'est pas que la définition des styles soit une mauvaise chose, je voulais juste ajouter ce peu d'infos. Merci pour la réponse et le commentaire! – baske

+0

Comment puis-je définir ce style sur un textview? – ScottF