有两种定义字体大小的方法
1) 在行内设置随机字体大小,如Flutter的新手
Text('item ${++index}', style: TextStyle(
color: Colors.green,
fontSize: 32)
2)使用应用程序材料主题中预定义的字体大小
这是一种更好的方法。通过这种方式,您可以在一个地方定义字体大小,它将自动应用于您的整个应用程序。
Text('item ${++index}', style: TextStyle(
color: Colors.green,
fontSize: Theme
.of(context)
.textTheme
.headline1?.fontSize?? 32
)
定义全局主题类:
import 'package:flutter/material.dart';
class AppTheme {
ThemeData buildThemeData() {
return ThemeData(
primarySwatch: Colors.blueGrey,
primaryColor: Colors.blueGrey[800],
accentColor: Colors.tealAccent,
textTheme: TextTheme(
headline1: TextStyle(
fontSize: 72.0,
fontWeight: FontWeight.bold,
fontFamily: 'Cutive',
),
headline6: TextStyle(fontSize: 36.0),
bodyText2: TextStyle(fontSize: 14.0),
));
}
}
现在将其应用于应用程序的入口点:
import 'package:flutter/material.dart';
import 'theme.dart';
import './widgets/home.dart';
void main() {
runApp(MainApp());
}
class MainApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: AppTheme().buildThemeData(),
home: MyStatelessWidget(),
);
}
}
我使用的第三种方法是定义一些我将要用到的组件,例如标题、标签等,并重复使用它们。
import 'dart:ui' as ui;
import 'package:flutter/material.dart';
class Header extends StatelessWidget {
Header({
required this.title,
});
final String title;
@override
Widget build(BuildContext context) {
return Text(
title,
style: TextStyle(
fontSize: 32,
foreground: Paint()
..shader = ui.Gradient.linear(
const Offset(0, 10),
const Offset(40, 20),
<Color>[
Colors.red,
Colors.blue,
],
)),
);
}
}
通过这种方式,在所有小部件中设置标题只需一行代码:
Header(title: "Hello World"),
MaterialButton
? - Rémi Rousselet