Comment choisir différents poids de police sans spécifier de nouvelle famille pour chaque poids?
fonts:
- family: Montserrat
fonts:
- asset: assets/fonts/Montserrat-Regular.ttf
weight: 100
- asset: assets/fonts/Montserrat-Bold.ttf
weight: 700
- family: MontserratBold
fonts:
- asset: assets/fonts/Montserrat-Bold.ttf
et les widgets:
child: Text(
'TEST',
style: TextStyle(
fontSize: 17.4,
fontFamily: 'Montserrat',
fontWeight: FontWeight.w700,
color: Colors.black87,
),
),
..
child: Text(
'TEST2',
style: TextStyle(
fontSize: 17.4,
fontFamily: 'MontserratBold',
color: Colors.black87),
),
Le Montserrat-Bold actuel est uniquement utilisé avec 'TEST2'. J'ai essayé d'utiliser "Packages get" dans pubspec.yaml et de redémarrer l'application.
D'après mes expériences, le système de musculation semble faire des choses intelligentes dans les coulisses. Cela dépend peut-être du ttf ou de l'appareil. Je parierais cependant que FontWeight.w900
pourrait tomber dans la police en gras.
Dans mon code, si je spécifie un poids de 100 (normal) et 200 (pour gras), la police en gras n'est pas utilisée jusqu'à ce que je demande FontWeight.w500
. Je peux le dire parce que je le demande également en italique, et le ttf gras ne italique pas pour une raison quelconque quel que soit le poids. Ainsi, bien que les poids "épaississent" la police par programme, il semble que le fait de comprendre comment et pourquoi ils tombent dans une police spécifique nécessite un travail de devinette.
J'ai ensuite essayé avec 3 polices: fine, régulière et audacieuse et les ai définies à des poids raisonnables dans le pubspec.yaml de 100, 400 et 700 qui sont décrits dans les documents comme thin
, normal / regular / plain
et bold
, et maintenant n'importe quoi ci-dessusFontWeight.w400
utilise gras.
J'espère que cela aide, ou que quelqu'un de plus compétent arrive
vous devez ajouter une indentation appropriée à - family
.
fonts:
- family: Montserrat
fonts:
- asset: assets/fonts/Montserrat-Regular.ttf
weight: 100
- asset: assets/fonts/Montserrat-Bold.ttf
weight: 700
De les docs nous obtenons cette liste de constantes:
w100 Fin, le moins épais
w200 Extra-léger
w300 Light
w400 Normal/régulier/ordinaire
w500 Medium
w600 Semi-gras
w700 Bold
w800 Extra-gras
w900 Noir, le plus épais
Ainsi, dans pubspec, vous pouvez définir votre police personnalisée comme ceci:
fonts:
- family: Montserrat
fonts:
- asset: fonts/Montserrat-Regular.ttf
- asset: fonts/Montserrat-SemiBold.ttf
weight: 600
- asset: fonts/Montserrat-Bold.ttf
weight: 700
et utilisez-le dans votre code comme ceci:
final h1 = new TextStyle(
fontSize: 24.0,
fontWeight: FontWeight.w600 // semi-bold
);