如何在 Flutter 中创建全局 TextStyle?
How to create a global TextStyle in Flutter?
在 return 语句之前的构建小部件的主页中,我使用以下代码。
如果我在我的主页中创建另一个小部件,我必须在每个 return 语句之前复制以下代码。如果您创建另一个 stateless/stateful dart 文件,我需要再次复制以下代码。
我的问题是如何在 Flutter 中创建全局 TextStyle?我不想更改主题数据,都想在我的 flutter 项目中使用我的 TextStyle。谢谢
TextStyle myNormalStyle = TextStyle(
fontSize: SizerUtil.deviceType == DeviceType.Mobile ? 14.0.sp : 13.0.sp,
fontStyle: FontStyle.normal,
fontWeight: FontWeight.normal,
color: Colors.black);
您可以通过 Theme
轻松使用它。如 flutter docs 中所述,您可以像这样使用它:
MaterialApp(
title: title,
theme: ThemeData(
// Define the default brightness and colors.
brightness: Brightness.dark,
primaryColor: Colors.lightBlue[800],
accentColor: Colors.cyan[600],
// Define the default font family.
fontFamily: 'Georgia',
// Define the default TextTheme. Use this to specify the default
// text styling for headlines, titles, bodies of text, and more.
textTheme: TextTheme(
headline1: TextStyle(fontSize: 72.0, fontWeight: FontWeight.bold),
headline6: TextStyle(fontSize: 36.0, fontStyle: FontStyle.italic),
bodyText2: TextStyle(fontSize: 14.0, fontFamily: 'Hind'),
),
)
);
或者您也可以使用 DefaultTextStyle
小部件为该小部件的所有子项提供默认 TextStyle
。详细了解 DefaultTextStyle。
在 return 语句之前的构建小部件的主页中,我使用以下代码。 如果我在我的主页中创建另一个小部件,我必须在每个 return 语句之前复制以下代码。如果您创建另一个 stateless/stateful dart 文件,我需要再次复制以下代码。
我的问题是如何在 Flutter 中创建全局 TextStyle?我不想更改主题数据,都想在我的 flutter 项目中使用我的 TextStyle。谢谢
TextStyle myNormalStyle = TextStyle(
fontSize: SizerUtil.deviceType == DeviceType.Mobile ? 14.0.sp : 13.0.sp,
fontStyle: FontStyle.normal,
fontWeight: FontWeight.normal,
color: Colors.black);
您可以通过 Theme
轻松使用它。如 flutter docs 中所述,您可以像这样使用它:
MaterialApp(
title: title,
theme: ThemeData(
// Define the default brightness and colors.
brightness: Brightness.dark,
primaryColor: Colors.lightBlue[800],
accentColor: Colors.cyan[600],
// Define the default font family.
fontFamily: 'Georgia',
// Define the default TextTheme. Use this to specify the default
// text styling for headlines, titles, bodies of text, and more.
textTheme: TextTheme(
headline1: TextStyle(fontSize: 72.0, fontWeight: FontWeight.bold),
headline6: TextStyle(fontSize: 36.0, fontStyle: FontStyle.italic),
bodyText2: TextStyle(fontSize: 14.0, fontFamily: 'Hind'),
),
)
);
或者您也可以使用 DefaultTextStyle
小部件为该小部件的所有子项提供默认 TextStyle
。详细了解 DefaultTextStyle。