在Flutter中添加自定义字体时,FontWeight
不会影响文本的原因通常与自定义字体的加载和使用方式有关。以下是详细解释和解决方案:
FontWeight.normal
和 FontWeight.bold
。FontWeight
可以用来强调或区分文本中的不同部分。在Flutter中添加自定义字体时,FontWeight
不会影响文本的原因通常是因为自定义字体的 fontFamily
没有正确加载或使用。
以下是详细的步骤和示例代码,展示如何在Flutter中正确加载和使用自定义字体,并确保 FontWeight
生效。
将自定义字体文件(例如 CustomFont.ttf
)添加到项目的 assets/fonts
目录下。
pubspec.yaml
在 pubspec.yaml
文件中添加字体资源路径:
flutter:
fonts:
- family: CustomFont
fonts:
- asset: assets/fonts/CustomFont.ttf
weight: 400
- asset: assets/fonts/CustomFontBold.ttf
weight: 700
在代码中使用自定义字体,并设置 FontWeight
:
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Custom Font Example',
theme: ThemeData(
textTheme: TextTheme(
bodyText1: TextStyle(
fontFamily: 'CustomFont',
fontWeight: FontWeight.normal,
fontSize: 16,
),
bodyText2: TextStyle(
fontFamily: 'CustomFont',
fontWeight: FontWeight.bold,
fontSize: 16,
),
),
),
home: Scaffold(
appBar: AppBar(
title: Text('Custom Font Example'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text('Normal Text', style: Theme.of(context).textTheme.bodyText1),
Text('Bold Text', style: Theme.of(context).textTheme.bodyText2),
],
),
),
),
);
}
}
通过以上步骤,你可以确保自定义字体正确加载,并且 FontWeight
能够正常影响文本的粗细。
领取专属 10元无门槛券
手把手带您无忧上云