Flutter 如何在颤振中用背景制作剪切图标?
我希望通过内置的颤振小部件在颤振中实现以下效果,而不使用带有透明度的PNG图像 我试图尝试背景混合模式,但没有成功 我也可以考虑使用自定义画师绘制圆圈和内十字,但理想情况下,我希望使用任何图标或任何其他小部件来剪切背景 我还偶然发现了一种叫做Flutter 如何在颤振中用背景制作剪切图标?,flutter,widget,clipping,Flutter,Widget,Clipping,我希望通过内置的颤振小部件在颤振中实现以下效果,而不使用带有透明度的PNG图像 我试图尝试背景混合模式,但没有成功 我也可以考虑使用自定义画师绘制圆圈和内十字,但理想情况下,我希望使用任何图标或任何其他小部件来剪切背景 我还偶然发现了一种叫做CustomClipper的东西。这是去的路吗 假设我们有以下小部件: return Stack( children: <Widget>[ SizedBox( height: 44, wi
CustomClipper
的东西。这是去的路吗
假设我们有以下小部件:
return Stack(
children: <Widget>[
SizedBox(
height: 44,
width: 44,
child: Image.network(
'https://images.pexels.com/photos/1295138/pexels-photo-1295138.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=750&w=1260',
fit: BoxFit.cover,
),
),
Positioned(
left: 0,
right: 0,
bottom: 0,
top: 0,
child: Icon(
Icons.close,
color: Colors.black,
),
),
],
);
返回堆栈(
儿童:[
大小盒子(
身高:44,
宽度:44,
孩子:Image.network(
'https://images.pexels.com/photos/1295138/pexels-photo-1295138.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=750&w=1260',
适合:BoxFit.cover,
),
),
定位(
左:0,,
右:0,,
底部:0,
排名:0,
子:图标(
图标。关闭,
颜色:颜色,黑色,
),
),
],
);
可以拍摄样本图像。好的,所以我在中找到了答案 似乎正确的关键字是
剪切
因此,我的解决方案非常简单,如下所示:
ClipRRect(
边界半径:边界半径。圆形(12),
孩子:剪纸(
颜色:颜色,白色,
子:图标(
图标。关闭,
颜色:颜色,白色,
),
),
),
以及使用以下工具的裁剪器:
类裁剪扩展了无状态小部件{
常数断路器({
关键点,
@需要这个颜色,
@需要这个孩子,
}):super(key:key);
最终颜色;
最后一个孩子;
@凌驾
小部件构建(构建上下文){
返回着色器掩码(
blendMode:blendMode.srcOut,
着色器回调:(边界)=>
LinearGradient(颜色:[颜色],停止:[0.0])。createShader(边界),
孩子:孩子,
);
}
}
我怎么做才能让它在中间的切口更矩形?