Dart 如何在Flatter中设置不同页面中的应用程序主题数据?

Dart 如何在Flatter中设置不同页面中的应用程序主题数据?,dart,flutter,Dart,Flutter,我在我的主页上有一个列表视图,如果我点击它,它将移动到一个新页面,第一个页面的主题应该是蓝色的,下一个页面的主题数据应该是红色的。 就像Facebook Messenger中的聊天自定义功能一样。您应该将页面小部件包装在主题小部件中。如下所示: @覆盖 小部件构建(构建上下文){ 返回主题( 数据:主题数据( 背景颜色:Colors.red, ), 孩子:建筑工人( 生成器:(上下文){ 返回页面小部件(上下文); } ), ); } 有一件事你应该知道。使用Builder()将最新的上下文(

我在我的主页上有一个列表视图,如果我点击它,它将移动到一个新页面,第一个页面的主题应该是蓝色的,下一个页面的主题数据应该是红色的。
就像Facebook Messenger中的聊天自定义功能一样。

您应该将页面小部件包装在主题小部件中。如下所示:

@覆盖
小部件构建(构建上下文){
返回主题(
数据:主题数据(
背景颜色:Colors.red,
),
孩子:建筑工人(
生成器:(上下文){
返回页面小部件(上下文);
}
),
);
}
有一件事你应该知道。使用
Builder()
将最新的
上下文
(包括此新上下文中的自定义主题数据)传递给子小部件

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


有关更多信息,您可以参考文档

将页面包装成具有所需属性的主题实例,因此我将为主题创建一个对象类?哦,我在文档中看到了,谢谢