我使用built_path
库将其工作,该库将SVG
路径预编译为Path
对象。然后,将其包装到ClipPathWidget
中,如下所示:
return GestureDetector(
onTap: () => _bodyPartTapped(part),
child: ClipPath(
child: Stack(children: <Widget>[
Container(
color: pressedBodyPart == part
? Colors.blue
: Colors.transparent),
CustomPaint(painter: PathPainter(path))
]),
clipper: PathClipper(path)));
如果按下该按钮,它将使身体部位着色为蓝色,效果很好。
我创建了一个完整的示例,可以在这里找到:https://github.com/gi097/flutter_clickable_regions