- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我正在尝试了解 ShaderMask
的工作原理。如果我遵循 ShaderMask
文档中的示例 here :
ShaderMask(
shaderCallback: (Rect bounds) {
return RadialGradient(
center: Alignment.topLeft,
radius: 1.0,
colors: <Color>[Colors.yellow, Colors.deepOrange.shade900],
tileMode: TileMode.mirror,
).createShader(bounds);
},
child: const Text('I’m burning the memories'),
)
我明白了:
(Text
下方的双线显然表示缺少 Theme
)
然后,如果我将相同的 ShaderMask
包围在 Scaffold
中,我会得到:
Scaffold(
body: Center(
child: ShaderMask(
shaderCallback: (Rect bounds) {
return RadialGradient(
center: Alignment.topLeft,
radius: 1.0,
colors: <Color>[Colors.yellow, Colors.deepOrange.shade900],
tileMode: TileMode.mirror,
).createShader(bounds);
},
child: const Text('I’m burning the memories'),
),
),
);
一切都过去了! ShaderMask
似乎只是被忽略了,文档中也没有提及此行为,Scaffold
为什么“禁用” ShaderMask
?
最佳答案
你缺少 - blendMode
属性
有关 - blendMode property 的更多信息
工作代码:
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: ShaderMask(
blendMode: BlendMode.srcATop, // Add this
shaderCallback: (Rect bounds) {
return RadialGradient(
center: Alignment.topLeft,
radius: 1.0,
colors: <Color>[Colors.yellow, Colors.deepOrange.shade900],
tileMode: TileMode.mirror,
).createShader(bounds);
},
child: const Text('I’m burning the memories'),
),
),
);
}
关于flutter - 了解 Flutter 的 ShaderMask,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57454851/
我想使内容的两面(边缘)褪色。 我将ShaderMask和LinearGradient一起使用,除了它不了解为什么我的stops不能正确居中的原因之外,它的工作原理非常好,我使用stops: [0.0
我正在尝试创建一个不错的线性渐变,在卡片图像的底部添加一种阴影。 我希望这张卡有圆角,但是当我应用 ShaderMask 时,线性渐变的底部是黑色的,它占据了容器的整个空间(即容器有圆角 但是 着色器
我想得到一个 ShaderMask使用图像作为着色器。我正在从内存中读取图像,所以我的图像是 File .如何使用内存中的图像创建 ImageShader? File imageFile; Image
我正在尝试了解 ShaderMask 的工作原理。如果我遵循 ShaderMask 文档中的示例 here : ShaderMask( shaderCallback: (Rect bounds)
我是一名优秀的程序员,十分优秀!