如何解决如何在 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”。
它涉及到以下部分:
color: Get.isDarkMode ? Colors.red : Colors.blue
任何建议如何做到这一点?
谢谢。
解决方法
菲利普 - 你是对的。我花了数小时阅读和测试,但出于某种原因,我完全错过了显而易见的事情 - 总是只看装饰 / BoxDecoration 本身,而不是树上的东西。非常感谢您的快速答复。现在可以使用了。
问题出在以下行:
children: const <Widget>[
删除 const
后它起作用了 - 解决方案:
children: <Widget>[
基于 Get.color 渲染两个不同的抽屉头,而不是用可变颜色渲染一个抽屉头。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。