gpt4 book ai didi

dart - 如何在flutter的不同页面中设置应用主题数据?

转载 作者:行者123 更新时间:2023-12-04 12:44:52 25 4
gpt4 key购买 nike

我的主页上有一个 ListView ,如果我点击它会移动到一个新页面,第一个主题应该是蓝色的,下一个主题数据应该是红色的。
就像 Facebook Messenger 中的聊天自定义的工作方式一样。

最佳答案

您应该将 Page 小部件包装在 Theme 小部件中。像下面这样:

@override
Widget build(BuildContext context) {
return Theme(
data: ThemeData(
backgroundColor: Colors.red,
),
child: Builder(
builder: (context) {
return YourPageWidget(context);
}
),
);
}

您应该注意一件事。使用 Builder()传递最新 context (包括您在这个新上下文中的自定义主题数据)到子小部件。

如果不使用 Builder,在某些情况下,YourPageWidget 无法通过命令 Theme.of(context)... 获取正确的主题数据。

更多信息可以引用文档 Create unique ThemeData

关于dart - 如何在flutter的不同页面中设置应用主题数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52378690/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com