我有一个Container
里面的小部件ClipPath
它使用一个CustomClipper
。一切正常,我有所需的小部件形状。
但是,我找不到为这个自定义形状的小部件制作阴影的方法。
另外,我想要一个自动跟随此自定义小部件边缘的轮廓(边框)。
再次没有运气。我试过BoxDecoration:border
, BoxDecoration:boxShadow
, ShapeDecoration:shape
, ShapeDecoration:shadows
, Material:Elevation
, etc..
基于@Bohdan Uhrynovskiy,我进一步调查并提出了这个解决方案:
CustomPaint(
painter: BoxShadowPainter(),
child: ClipPath(
clipper: MyClipper(), //my CustomClipper
child: Container(), // my widgets inside
)));
class BoxShadowPainter extends CustomPainter {
@override
void paint(Canvas canvas, Size size) {
Path path = Path();
// here are my custom shapes
path.moveTo(size.width, size.height * 0.14);
path.lineTo(size.width, size.height * 1.0);
path.lineTo(size.width - (size.width *0.99) , size.height);
path.close();
canvas.drawShadow(path, Colors.black45, 3.0, false);
}
@override
bool shouldRepaint(CustomPainter oldDelegate) {
return true;
}
}
您必须需要提供自己的自定义路径paint()
的方法BoxShadowPainter
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)