Flutter 为什么着色器遮罩不能在颤振web上工作?

Flutter 为什么着色器遮罩不能在颤振web上工作?,flutter,flutter-web,Flutter,Flutter Web,下面是我正在尝试的代码: ShaderMask( shaderCallback: (rect) { return LinearGradient( begin: Alignment.topCenter, end: Alignment.bottomCenter, colors: [Colors.black, Colors.transparent],

下面是我正在尝试的代码:

ShaderMask(
          shaderCallback: (rect) {
            return LinearGradient(
              begin: Alignment.topCenter,
              end: Alignment.bottomCenter,
              colors: [Colors.black, Colors.transparent],
            ).createShader(Rect.fromLTRB(0, 0, rect.width, rect.height));
          },
          blendMode: BlendMode.dstIn,
          child: Image.asset('assets/image.jpg'),
        ),
我以前已经使用过着色器遮罩,所以我知道它可以在安卓IOS上使用。以下是结果(正确的一个):

但这是我在Flatter web上尝试相同代码时得到的结果:

我是做错了什么,还是这是一个来自颤振方面的问题?这是一个颤振的web端问题,有解决方法吗?我想达到上面的android效果。(图像从下方淡出)。


它在颤振2.2 beta频道中对我有效。

检查您是否使用的是颤振2.21的最新版本。 如果没有,则使用下面的命令

flutter upgrade
在FlatterWeb更新中,他们对web进行了改进。他们增加了对着色器掩码和computeLineMetrics的支持,解决了Flatter web和移动应用程序之间的奇偶性差距。例如,您现在可以使用不透明度遮罩使用着色器遮罩执行淡出过渡,并使用computeLineMetrics,就像它们用于移动应用一样