buildChild method
Implementation
Widget buildChild(BuildContext context) {
return GestureDetector(
onPanUpdate: (d) {
final newR = MathUtil.getRadians(
center: center,
point: d.localPosition
);
final oldR = MathUtil.getRadians(
center: center,
point: Offset(
d.localPosition.dx - d.delta.dx,
d.localPosition.dy - d.delta.dy
)
);
increaseAngleOffset(newR - oldR);
},
onTap: () {
if (widget.hideOverlay != null) {
widget.animationController.reverse();
widget.hideOverlay!();
}
},
behavior: HitTestBehavior.translucent,
child: ValueListenableBuilder(
valueListenable: angleOffsetNotifier,
builder: (context, value, child) {
return Transform.rotate(
angle: angleOffsetNotifier.value,
child: Container(
width: outerRadius * 2 + widget.padding,
height: outerRadius * 2 + widget.padding,
color: widget.debugMode ? Colors.grey : null,
child: RepaintBoundary(
child: Flow(
delegate: FanFlowDelegation(
center: center,
animation: animation
),
children: [
...fanSliceList.map(
(e) => FanSliceWidget(
fanAnimationConfig: widget.animationConfig,
callback: callback,
pieceBorderSize: widget.pieceBorderSize,
fanSlice: e,
controller: widget.animationController,
)
)
]
)
)
)
);
}
)
);
}