我有一堆图像小部件,当它们处于禁用状态时,应该是灰色的.

有没有办法改变现有图像,使其看起来被禁用/变灰?

我希望避免使用启用的图像资源和禁用的图像资源来增加APK的整体大小,而不是使用单个资源.

推荐答案

将widget设置为容器的子级,并添加forecround Decentation,如下所示:

Container(
  foregroundDecoration: BoxDecoration(
    color: Colors.grey,
    backgroundBlendMode: BlendMode.saturation,
  ),
  child: child,
)

--更新: 基于Flutter 翼团队的this new video个数据,还有另一个小部件可以实现这一点. 代码基本相同,如下所示:

ColorFiltered(
  colorFilter: ColorFilter.mode(
    Colors.grey,
    BlendMode.saturation,
  ),
  child: child,
)

但我还是更喜欢使用Container进行场地装饰的方法,因为Container在相同的地方给了你更多的灵活性.

Flutter相关问答推荐

当第二页在单独的小工具中使用Navigator.pop时,Navigator.push不起作用

如何更改ElevatedButton的 colored颜色 以按下它?

如何在FiRestore中正确编写OR查询

在setState之后,Ffltter ListView.Builder未更新

Flex ListView用于可滚动和响应的页面

如何在Dart中允许正则表达式中有一个空格,但允许其他字符为1或更多?

Flutter 构建 Web 分段故障 - 无法启动事件处理程序线程

构建上下文不能跨异步间隙使用

Dart:未捕获错误:RangeError(索引):索引超出范围:索引应小于 7:7

Flutter底部面板局部显示

如何使Flutter 屏幕无法关闭?

如何计算 Firestore 集合中的文档数量?

我怎样才能消除我的 Column 子元素之间的差距?

如何修复 ICU Lexing 错误:Flutter 中的意外字符

如何从 Firebase `get()` 获取 `DocumentReference`

如何获得Flutter 的时差?

为什么 orientation == Orientation.portrait 总是正确的,尽管我的设备已经处于横向

从物理设备 Flutter 中移除 USB 后启动画面不可见?

在 flutter 中使用 Firebase 实时数据库数据创建无限滚动效果

Android Studio 模拟器屏幕闪烁