[英]How to dynamically theme BoxDecoration in Flutter / GetX
我将 GetX 与 Flutter 一起使用,并通过标准 ThemeData 动态更改应用程序主题。 一切都适用于 ThemeData 中的属性。
但是,我刚刚实现了 Drawer 小部件,并且还想在 DrawerHeader(BoxDecoration 类型)中设置“装饰”属性的主题。 我想根据所选主题为 BoxDecoration 中的颜色设置主题,但它似乎只接受常量。 我还没有找到任何方法来根据主题动态更改它。
return Drawer(
child: ListView(
padding: EdgeInsets.zero,
children: const <Widget>[
DrawerHeader(
decoration:
BoxDecoration(color: Get.isDarkMode ? Colors.red : Colors.blue),
我收到以下错误:
const 列表文字中的值必须是常量。 尝试从列表文字中删除关键字“const”。
它涉及以下部分: color: Get.isDarkMode? Colors.red: Colors.blue
color: Get.isDarkMode? Colors.red: Colors.blue
任何建议如何做到这一点?
谢谢你。
费利佩 - 你是对的。 我花了几个小时阅读和测试,但由于某种原因,我完全错过了显而易见的事情——总是只看装饰/盒子装饰本身,而不是树上。 非常感谢您的快速答复。 现在可以了。
问题出在以下行: children: const <Widget>[
删除const
后它可以工作 - 解决方案:
children: <Widget>[
基于 Get.color 渲染两个不同的抽屉头,而不是使用变量 colors 渲染一个抽屉头。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.