2016-03-12 13 views
5

Semplicemente usando allowFontScaling={false} risolve questo problema su iOS, ma non sono sicuro su come impostarlo su Android.Come disabilitare il ridimensionamento dei caratteri in RN per Android?

Inoltre, per chiunque non abbia familiarità con RN e venga dal tag Android, non penso di poter passare facilmente allo scaling dei font dp o altro, quindi c'è un modo per farlo a livello globale in la mia app in qualche modo?

Grazie!

+0

Hai considerato di impostare il valore del carattere in base alla densità dello schermo? Nella dimensione del testo di Android è impostato con "sp" che indica che il carattere deve essere ridimensionato in modo che appaia uguale alle dimensioni fisiche su schermi con densità di pixel più elevata. Se hai definito un attributo "dimen" per la dimensione del testo in questione, hai creato diversi file "dimens.xml" per ciascuna densità dello schermo (mdpi, hdpi, xhdpi, xxhdpi e xxxhdpi) e determinato quale dovrebbe essere la dimensione del carattere per ogni densità dello schermo, sembra che dovrebbe realizzare quello che stai cercando –

+0

@JaceJMcPherson Non sono sicuro di aver capito. potresti spiegare dove in RN puoi impostare una dimensione del testo con 'sp' su un elemento di testo? –

+0

Sto anche affrontando lo stesso problema. Gentilmente dimmi se hai trovato la soluzione. – Prasanna

risposta

4

Aggiorna file di ManiApplication.java

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

Dopo super.onCreate(); metodo messo adjustFontScale(getApplicationContext(),getResources().getConfiguration());

Come seguire

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

E alla fine aggiungere la seguente funzione

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

Abbiamo bisogno di una funzione di accettazione forzata su SO in caso di richieste di questo tipo da parte di OP. –

Problemi correlati