[flutter] Cómo el flutter evita que el tamaño de fuente en la aplicación cambie con los cambios del sistema

Si no lo configuramos deliberadamente, el tamaño de fuente de la aplicación desarrollada por Flutter cambiará de acuerdo con el tamaño de fuente establecido por el sistema, lo que provocará que el diseño de la página quede desordenado, entonces, ¿cómo solucionar este problema? También busqué información relevante. Hay dos métodos de uso común que se recopilan ampliamente en Internet. También hay un método que uso yo mismo que es relativamente simple y tosco pero creo que es conveniente y rápido.

Veamos primero los métodos comunes.

Solución 1: el componente personalizado hereda el componente Texto y usa directamente Texto Fijo para definirlo cuando lo usa.

import 'package:flutter/material.dart';
import 'package:flutter_app2/View/FixedSizeText.dart';

class FixedText extends Text {
  const FixedText(String data, {
    Key key,
    TextStyle style,
    StrutStyle strutStyle,
    TextAlign textAlign,
    TextDirection textDirection,
    Locale locale,
    bool softWrap,
    TextOverflow overflow,
    double textScaleFactor = 1.0,
    int maxLines,
    String semanticsLabel,
  }) : super(data,
      key:key,
      style:style,
      strutStyle:strutStyle,
      textAlign:textAlign,
      textDirection:textDirection,
      locale:locale,
      softWrap:softWrap,
      overflow:overflow,
      textScaleFactor:textScaleFactor,
      maxLines:maxLines,
      semanticsLabel:semanticsLabel);
}

Opción 2. Modificar la configuración global

Configure MediaQuery.of(context).copyWith(textScaleFactor: 1.0) en la función principal para evitar que el texto cambie con el sistema

//在main函数中,设置builder
MaterialApp(
    home:Home(),
    builder: (context, widget) {
	    return MediaQuery(
		   ///设置文字大小不随系统设置改变
		   data: MediaQuery.of(context).copyWith(textScaleFactor: 1.0),
		   child: widget,
		);
    },
),

Opción 3: modificar directamente el componente Texto

Porque cuando descubrí este problema, el código ya era relativamente grande y usaba Texto en muchos lugares, definitivamente no era razonable reemplazarlos uno por uno, así que modifiqué directamente el código fuente de Texto y configuré el valor predeterminado de textScaleFactor en 1.0.

Debido a que estoy seguro de que todo el sistema no se puede cambiar a medida que cambia el sistema, simplemente modifico el código fuente. No se puede cambiar de forma predeterminada. Es simple, tosco y efectivo.

 

Supongo que te gusta

Origin blog.csdn.net/wuguidian1114/article/details/131986077
Recomendado
Clasificación