2016-03-12 12 views
5

Chỉ cần sử dụng allowFontScaling={false} khắc phục sự cố này trên iOS, nhưng tôi không chắc chắn cách đặt cài đặt này trên Android.Làm cách nào để tắt chia tỷ lệ phông chữ trong RN cho Android?

Ngoài ra, đối với bất kỳ ai không quen thuộc với RN và đến đây từ thẻ Android, tôi không nghĩ rằng tôi có thể dễ dàng thay đổi từ dp chia tỷ lệ phông chữ hoặc bất cứ điều gì, vậy có cách nào tôi có thể làm điều đó trên toàn cầu không ứng dụng của tôi bằng cách nào đó?

Cảm ơn!

+0

Bạn đã cân nhắc đặt giá trị phông chữ dựa trên mật độ màn hình chưa? Trong kích thước văn bản Android được đặt bằng "sp" cho biết phông chữ sẽ tỷ lệ xuất hiện ở cùng kích thước vật lý trên màn hình có mật độ điểm ảnh cao hơn. Nếu bạn đã xác định thuộc tính "dimen" cho kích thước văn bản được đề cập, hãy tạo các tệp "dimens.xml" khác nhau cho từng mật độ màn hình (mdpi, hdpi, xhdpi, xxhdpi và xxxhdpi) và xác định kích thước phông chữ cho mỗi mật độ màn hình, có vẻ như điều đó sẽ hoàn thành những gì bạn đang tìm kiếm –

+0

@JaceJMcPherson Tôi không chắc tôi hiểu. bạn có thể giải thích ở đâu trong RN bạn có thể đặt kích thước văn bản bằng 'sp' trên một phần tử Text không? –

+0

Tôi cũng phải đối mặt với cùng một vấn đề. Hãy cho tôi biết nếu bạn có giải pháp. – Prasanna

Trả lời

4

Hãy cập nhật tập tin ManiApplication.java

import android.view.WindowManager; 
import android.content.res.Configuration; 
import android.content.Context; 
import android.util.DisplayMetrics; 

Sau super.onCreate(); phương pháp đặt adjustFontScale(getApplicationContext(),getResources().getConfiguration());

Giống như theo

@Override 
    public void onCreate() { 
    super.onCreate(); 
    adjustFontScale(getApplicationContext(),getResources().getConfiguration()); 
} 

Và cuối cùng thêm chức năng sau

public void adjustFontScale(Context context, Configuration configuration) { 
    if (configuration.fontScale != 1) { 
     configuration.fontScale = 1; 
     DisplayMetrics metrics = context.getResources().getDisplayMetrics(); 
     WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); 
     wm.getDefaultDisplay().getMetrics(metrics); 
     metrics.scaledDensity = configuration.fontScale * metrics.density; 
     context.getResources().updateConfiguration(configuration, metrics); 
    } 
} 
+0

Chúng tôi cần một tính năng cưỡng bức trên SO trong trường hợp OP bails như thế này. –

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