Flutter 主题数据中的google_字体-未应用字体
我正在尝试向主题数据添加一些。我所有的主题都被应用了,除了谷歌字体没有。为什么会这样?以下是我的项目设置: 主题:Flutter 主题数据中的google_字体-未应用字体,flutter,google-fonts,flutter-theme,getx,Flutter,Google Fonts,Flutter Theme,Getx,我正在尝试向主题数据添加一些。我所有的主题都被应用了,除了谷歌字体没有。为什么会这样?以下是我的项目设置: 主题: import 'package:flutter/material.dart'; import 'package:google_fonts/google_fonts.dart'; import 'theme_utils.dart'; MaterialColor primaryColorShades = generateMaterialColor(primaryColor); Ma
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'theme_utils.dart';
MaterialColor primaryColorShades = generateMaterialColor(primaryColor);
MaterialColor accentColorShades = generateMaterialColor(accentColor);
const Color primaryColor = Color(0xFF62d9d5);
const Color accentColor = Color(0xFF27a562);
const Color blueText = Color(0xFF409491);
ThemeData blueTheme = ThemeData(
colorScheme: const ColorScheme(
brightness: Brightness.light,
primary: primaryColor,
secondary: accentColor,
surface: Colors.white,
background: primaryColor,
error: Colors.red,
onBackground: Colors.white,
onError: Colors.white,
onPrimary: Colors.white,
onSecondary: Colors.white,
onSurface: blueText,
primaryVariant: Colors.white,
secondaryVariant: Colors.white),
visualDensity: VisualDensity.standard,
canvasColor: primaryColor,
textTheme: GoogleFonts.varelaRoundTextTheme().copyWith(
headline1: const TextStyle(
fontSize: 30.0, fontWeight: FontWeight.bold, color: Colors.white),
subtitle1: TextStyle(
fontSize: 18.0,
fontWeight: FontWeight.bold,
color: Colors.white.withOpacity(0.7)),
button: GoogleFonts.hind(
textStyle: const TextStyle(
fontSize: 12.0, fontWeight: FontWeight.w500, color: blueText)),
),
);
main.dart:
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'app/routes/app_pages.dart';
import 'app/theme/theme.dart';
void main() {
runApp(GetMaterialApp(
title: 'Application',
initialRoute: AppPages.INITIAL,
getPages: AppPages.routes,
theme: blueTheme,
));
}
在我看来,这样使用它们:
Text('Hi there, \nI\'m Vepo',
style: Theme.of(context).textTheme.headline1,
textAlign: TextAlign.center),
Text('I can help you find vegan things in your local area',
style: Theme.of(context).textTheme.subtitle1,
textAlign: TextAlign.center),
RaisedButton(padding: const EdgeInsets.symmetric(
vertical: 10, horizontal: 60),
elevation: 20.00,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(40.0)),
child: Text(
'COOL, SIGN ME UP!',
style: Theme.of(context).textTheme.button,
),
onPressed: () {}),
Text('Hi there, \nI\'m Vepo',
style: Theme.of(context).textTheme.headline1,
textAlign: TextAlign.center),
),
在我的pubspec.yaml中:
flutter:
uses-material-design: true
assets:
- assets/images/
- google_fonts/
flutter:
uses-material-design: true
fonts:
- family: VarelaRound
fonts:
- asset: assets/fonts/VarelaRound-Regular.ttf
在我的项目根目录中:
为什么不应用字体
从google_fonts pub页面上看,我似乎需要从主题数据中引用上下文,但我没有访问权限,因为它是另一个文件,而且我真的不想将主题数据更改为与他们的文档类似的内联数据:
MaterialApp(
theme: ThemeData(
textTheme: GoogleFonts.latoTextTheme(
Theme.of(context).textTheme,
),
),
);
我以为我必须用谷歌字体的方式做事,但我没有。google_字体方式似乎需要主题数据中某些内容的上下文。更改为颤振方式: 在pubspec.yaml中:
flutter:
uses-material-design: true
assets:
- assets/images/
- google_fonts/
flutter:
uses-material-design: true
fonts:
- family: VarelaRound
fonts:
- asset: assets/fonts/VarelaRound-Regular.ttf
在我的主题中:
import 'package:flutter/material.dart';
import 'theme_utils.dart';
MaterialColor primaryColorShades = generateMaterialColor(primaryColor);
MaterialColor accentColorShades = generateMaterialColor(accentColor);
const Color primaryColor = Color(0xFF62d9d5);
const Color accentColor = Color(0xFF27a562);
const Color blueText = Color(0xFF409491);
ThemeData blueTheme = ThemeData(
colorScheme: const ColorScheme(
brightness: Brightness.light,
primary: primaryColor,
secondary: accentColor,
surface: Colors.white,
background: primaryColor,
error: Colors.red,
onBackground: Colors.white,
onError: Colors.white,
onPrimary: Colors.white,
onSecondary: Colors.white,
onSurface: blueText,
primaryVariant: Colors.white,
secondaryVariant: Colors.white),
visualDensity: VisualDensity.standard,
canvasColor: primaryColor,
fontFamily: 'varelaRound',
textTheme: TextTheme(
headline1: const TextStyle(
fontSize: 30.0,
fontWeight: FontWeight.bold,
color: Colors.white,
fontFamily: 'varelaRound'),
subtitle1: TextStyle(
fontSize: 18.0,
fontWeight: FontWeight.bold,
fontFamily: 'varelaRound',
color: Colors.white.withOpacity(0.7)),
caption: TextStyle(
fontSize: 14.0,
fontWeight: FontWeight.w600,
fontFamily: 'hind',
color: Colors.white.withOpacity(0.7)),
button: const TextStyle(
fontSize: 12.0,
fontWeight: FontWeight.w500,
color: blueText,
fontFamily: 'hind'),
),
);
然后在视图中使用,如下所示:
Text('Hi there, \nI\'m Vepo',
style: Theme.of(context).textTheme.headline1,
textAlign: TextAlign.center),
Text('I can help you find vegan things in your local area',
style: Theme.of(context).textTheme.subtitle1,
textAlign: TextAlign.center),
RaisedButton(padding: const EdgeInsets.symmetric(
vertical: 10, horizontal: 60),
elevation: 20.00,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(40.0)),
child: Text(
'COOL, SIGN ME UP!',
style: Theme.of(context).textTheme.button,
),
onPressed: () {}),
Text('Hi there, \nI\'m Vepo',
style: Theme.of(context).textTheme.headline1,
textAlign: TextAlign.center),
),
您是否定义了pubspec文件中的字体@奥米沙,我想我不需要。“注意:由于这些文件被列为资产,因此没有必要在pubspec.yaml的字体部分列出它们。这可以做到,因为这些文件都是从谷歌字体API中统一命名的(所以请确保不要重命名它们!)”啊,这是我的错误。我错过了谷歌字体软件包。