Flutter 有没有一种方法可以通过编程更改FlatterTextTheme中属性的值?
我想更改Flutter 有没有一种方法可以通过编程更改FlatterTextTheme中属性的值?,flutter,user-interface,Flutter,User Interface,我想更改textTheme变量的样式。当我从JSON读取值时,我想动态编辑headline2属性,不想一直使用条件来覆盖所有情况 JSON代码段: { "headline2": { "color": "0x000000", "fontFamily": "opr" } } 代码段: var textTheme = TextTheme( headline2: TextSt
textTheme
变量的样式。当我从JSON读取值时,我想动态编辑headline2
属性,不想一直使用条件来覆盖所有情况
JSON代码段:
{
"headline2": {
"color": "0x000000",
"fontFamily": "opr"
}
}
代码段:
var textTheme = TextTheme(
headline2: TextStyle(
color: Colors.white,
fontFamily: "ark"
)
);
有办法做到这一点吗
感谢您的帮助。谢谢大家! 如果要在变量
textTheme
修改时动态更新应用程序的每个小部件,可能需要ChangeNotifierProvider
我假设TextTheme
将被添加到ThemeData
中,因此您需要在代码开始时将ChangeNotifierProvider
置于MaterialApp
之上
然后,您的ChangeNotifier
可能如下所示:
class ThemeProvider extends ChangeNotifier {
bool darkTheme;
ThemeProvider() {
darkTheme = true;
}
changeTheme()
{
darkTheme = !darkTheme;
notifyListeners();
}
}
您的文本主题将被修改如下:
final ThemeProvider _themeProvider =
Provider.of<ThemeProvider>(context);
var textTheme = _themeProvider.darkTheme ? TextTheme(
headline2: TextStyle(
color: Colors.black,
fontFamily: "ark"
) : TextTheme(
headline2: TextStyle(
color: Colors.white,
fontFamily: "ark"
)
);
final ThemeProvider\u ThemeProvider=
(上下文)的提供者;
var textTheme=\u themeProvider.darkTheme?文本主题(
标题2:文本样式(
颜色:颜色,黑色,
方舟家族
):text主题(
标题2:文本样式(
颜色:颜色,白色,
方舟家族
)
);
每次调用changeTheme()
函数时,textTheme,因此,您的应用程序将完全更新
如果您不熟悉
变更通知提供者
:正确。谢谢!