我的主页上有一个列表视图,如果单击它,它将移到新页面,第一个主题应该为蓝色,第二个主题数据应该为红色。 就像Facebook的Messenger中的聊天自定义功能一样。
答案 0 :(得分:2)
您应该将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