[英]Override flutter textTheme
在这样的特定情况下,有没有办法扩展Theme.of(context).textTheme.bodyText2
的 styles ?
我想在使用bodyText2
主题时为AppBar
文本添加颜色
main.dart
void main() {
// =========================================================================
// THEME COLORS
// =========================================================================
final primary = Color(0xff222222);
final dimmed = Color(0xff838383);
// =========================================================================
// ENTRY POINT
// =========================================================================
runApp(MaterialApp(
debugShowCheckedModeBanner: false,
theme: ThemeData(
fontFamily: 'Avenir',
textTheme: TextTheme(
bodyText1: TextStyle(
fontFamily: 'Avenir',
fontSize: 16,
),
bodyText2: TextStyle(
fontFamily: 'Avenir',
fontWeight: FontWeight.w700,
fontSize: 16,
),
),
primaryColor: primary,
accentColor: dimmed,
),
home: App(),
));
}
IsaAppBar.dart
// =========================================================================
// IsaAppBar State
// =========================================================================
class _IsaAppBarState extends State<IsaAppBar> {
String get title => widget.title;
@override
Widget build(BuildContext context) {
return AppBar(
backgroundColor: Theme.of(context).primaryColor,
title: Align(
alignment: Alignment.topLeft,
child: Text('ISA', style: Theme.of(context).textTheme.bodyText2)));
}
}
您可以使用.copyWith()
方法实现此目的
return AppBar(
backgroundColor: Theme.of(context).primaryColor,
title: Align(
alignment: Alignment.topLeft,
child: Text('ISA',
style: Theme.of(context)
.textTheme
.bodyText2
.copyWith(color: Colors.black)),
),
);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.