2015-03-16 19 views
7

Tôi có một phong cách sử dụng "monospace" trong App Android của tôi:Điều gì đã xảy ra với Monospace trong 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> 

Tất cả là tốt cho đến khi Lollipop đến khi nó dường như không sử dụng font Monospace nữa và tôi có thể nhìn thấy nó thay đổi khi tôi lật API từ 19 đến 21 trong Android Studio.

Tôi đã googled và không tìm thấy bất cứ điều gì và tôi đánh giá cao nó chỉ là một vấn đề thẩm mỹ nhưng bất cứ ai có bất kỳ ý tưởng là tại sao?

+0

Tôi không gặp vấn đề gì khi sử dụng 'monospace' trên Android 5.0. [Ứng dụng mẫu này] (https://github.com/commonsguy/cw-omnibus/tree/master/Fonts/FontSampler) hoạt động tốt trên Nexus 4 - Tôi vừa thử nghiệm nó. – CommonsWare

+0

Cảm ơn @CommonsWare. Hiếu kỳ. Tôi rõ ràng đang làm điều gì đó sai vì việc đặt phông chữ trực tiếp không hoạt động ... Tôi tự hỏi nếu thuộc tính cha mẹ có ghi đè thứ gì đó không? –

+0

Bạn đã thử đặt 'android: fontFamily =" @ null "'? – alanv

Trả lời

21

Các xuất hiện văn bản Chất liệu xác định android:fontFamily thuộc tính chứ không phải android:typeface để họ có thể sử dụng sans-serif-light, sans-serif-medium vv Thuộc tính này được ưu tiên hơn kiểu chữ, vì vậy bạn sẽ cần phải hoặc là ghi đè hoặc xóa giá trị fontFamily.

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

Cảm ơn @alanv! Điều đó đã cho tôi giải pháp ' monospace monospace' đã thực hiện thủ thuật. –

+0

Thật vậy, android: fontFamily nên được đặt thành "monospace" chứ không phải @null. Đối với thiết lập một thời gian của monospace, bạn cũng có thể thêm android: fontFamily = "monospace" làm thuộc tính vào trong bố cục xml của bạn thay vì xác định kiểu cho nó. Không phải là việc xác định kiểu dáng là một điều xấu, tôi chỉ muốn thêm một chút thông tin. Cảm ơn câu trả lời và bình luận! – baske

+0

Làm cách nào để sau đó đặt kiểu này trên chế độ xem văn bản? – ScottF

Các vấn đề liên quan