2015-03-16 12 views
7

mam styl używać „monospace” w moim Android App:Co się stało z Monospace w Androidzie 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> 

Wszystko było w porządku do momentu, gdy przybył Lollipop nie wydaje się już używać czcionki o stałej szerokości i widzę to zmienić, kiedy przerzucić API od 19 do 21 w Androidzie Studio.

Mam google i nic nie znalazłem, a doceniam, że to tylko kosmetyczny problem, ale każdy ma jakieś pomysły, dlaczego?

+0

Nie mam problemów z używaniem 'monospace' na Androidzie 5.0. [Ta przykładowa aplikacja] (https://github.com/commonsguy/cw-omnibus/tree/master/Fonts/FontSampler) działa dobrze na Nexusie 4 - właśnie to przetestowałem. – CommonsWare

+0

Dzięki @CommonsWare. Ciekawy. Oczywiście robię coś nie tak, ponieważ ustawienie czcionki również nie działa ... Zastanawiam się, czy jest to atrybut nadrzędny, który coś nadpisuje? –

+0

Czy próbowałeś ustawić 'android: fontFamily =" @ null "'? – alanv

Odpowiedz

21

Materialni występy tekstowe określić atrybut zamiast android:typefaceandroid:fontFamily tak, że mogą korzystać sans-serif-light, sans-serif-medium, itd. Ta cecha ma pierwszeństwo nad krojem, więc trzeba będzie albo nadpisać lub usunąć wartość fontFamily.

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

Dzięki @alanv! To dało mi rozwiązanie: monospace monospace 'zrobiłem. –

+0

Rzeczywiście android: fontFamily powinien być ustawiony na "monospace", a nie @null. W przypadku jednorazowego ustawienia monospace możesz również dodać android: fontFamily = "monospace" jako własność do w układzie xml zamiast definiowania stylu dla niego. Nie to, że definiowanie stylów jest złe, chciałem tylko dodać trochę informacji. Dzięki za odpowiedź i komentarz! – baske

+0

Jak mogę później ustawić ten styl na podstawie tekstu? – ScottF

Powiązane problemy