Add edgeStyle to AnimatedCircularChart and CircularChart
This commit is contained in:
parent
c98ed04297
commit
de9f37138a
@ -14,6 +14,15 @@ enum CircularChartType {
|
|||||||
Radial,
|
Radial,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Determines how the ends of a chart's segments should be drawn.
|
||||||
|
enum SegmentEdgeStyle {
|
||||||
|
/// Segments begin and end with a flat edge.
|
||||||
|
Flat,
|
||||||
|
|
||||||
|
/// Segments begin and end with a semi-circle.
|
||||||
|
Round,
|
||||||
|
}
|
||||||
|
|
||||||
class AnimatedCircularChart extends StatefulWidget {
|
class AnimatedCircularChart extends StatefulWidget {
|
||||||
AnimatedCircularChart({
|
AnimatedCircularChart({
|
||||||
Key key,
|
Key key,
|
||||||
@ -26,8 +35,8 @@ class AnimatedCircularChart extends StatefulWidget {
|
|||||||
this.startAngle = _kStartAngle,
|
this.startAngle = _kStartAngle,
|
||||||
this.holeLabel,
|
this.holeLabel,
|
||||||
this.labelStyle,
|
this.labelStyle,
|
||||||
})
|
this.edgeStyle = SegmentEdgeStyle.Flat,
|
||||||
: assert(size != null),
|
}) : assert(size != null),
|
||||||
super(key: key);
|
super(key: key);
|
||||||
|
|
||||||
/// The size of the bounding box this chart will be constrained to.
|
/// The size of the bounding box this chart will be constrained to.
|
||||||
@ -91,6 +100,11 @@ class AnimatedCircularChart extends StatefulWidget {
|
|||||||
/// [ThemeData.textTheme.body2] text style.
|
/// [ThemeData.textTheme.body2] text style.
|
||||||
final TextStyle labelStyle;
|
final TextStyle labelStyle;
|
||||||
|
|
||||||
|
/// The type of segment edges to be drawn.
|
||||||
|
///
|
||||||
|
/// Defaults to [SegmentEdgeStyle.Flat].
|
||||||
|
final SegmentEdgeStyle edgeStyle;
|
||||||
|
|
||||||
/// The state from the closest instance of this class that encloses the given context.
|
/// The state from the closest instance of this class that encloses the given context.
|
||||||
///
|
///
|
||||||
/// This method is typically used by [AnimatedCircularChart] item widgets that insert or
|
/// This method is typically used by [AnimatedCircularChart] item widgets that insert or
|
||||||
@ -165,6 +179,7 @@ class AnimatedCircularChartState extends State<AnimatedCircularChart>
|
|||||||
percentageValues: widget.percentageValues,
|
percentageValues: widget.percentageValues,
|
||||||
holeRadius: widget.holeRadius,
|
holeRadius: widget.holeRadius,
|
||||||
startAngle: widget.startAngle,
|
startAngle: widget.startAngle,
|
||||||
|
edgeStyle: widget.edgeStyle,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
_animation.forward();
|
_animation.forward();
|
||||||
@ -231,6 +246,7 @@ class AnimatedCircularChartState extends State<AnimatedCircularChart>
|
|||||||
percentageValues: widget.percentageValues,
|
percentageValues: widget.percentageValues,
|
||||||
holeRadius: widget.holeRadius,
|
holeRadius: widget.holeRadius,
|
||||||
startAngle: widget.startAngle,
|
startAngle: widget.startAngle,
|
||||||
|
edgeStyle: widget.edgeStyle,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
_animation.forward(from: 0.0);
|
_animation.forward(from: 0.0);
|
||||||
|
@ -9,10 +9,15 @@ import 'package:flutter_circular_chart/src/tween.dart';
|
|||||||
class CircularChart {
|
class CircularChart {
|
||||||
static const double _kStackWidthFraction = 0.75;
|
static const double _kStackWidthFraction = 0.75;
|
||||||
|
|
||||||
CircularChart(this.stacks, this.chartType);
|
CircularChart(
|
||||||
|
this.stacks,
|
||||||
|
this.chartType, {
|
||||||
|
this.edgeStyle = SegmentEdgeStyle.Flat,
|
||||||
|
});
|
||||||
|
|
||||||
final List<CircularChartStack> stacks;
|
final List<CircularChartStack> stacks;
|
||||||
final CircularChartType chartType;
|
final CircularChartType chartType;
|
||||||
|
final SegmentEdgeStyle edgeStyle;
|
||||||
|
|
||||||
factory CircularChart.empty({@required CircularChartType chartType}) {
|
factory CircularChart.empty({@required CircularChartType chartType}) {
|
||||||
return new CircularChart(<CircularChartStack>[], chartType);
|
return new CircularChart(<CircularChartStack>[], chartType);
|
||||||
@ -27,6 +32,7 @@ class CircularChart {
|
|||||||
Map<String, int> stackRanks,
|
Map<String, int> stackRanks,
|
||||||
Map<String, int> entryRanks,
|
Map<String, int> entryRanks,
|
||||||
double holeRadius,
|
double holeRadius,
|
||||||
|
SegmentEdgeStyle edgeStyle,
|
||||||
}) {
|
}) {
|
||||||
final double _holeRadius = holeRadius ?? size.width / (2 + data.length);
|
final double _holeRadius = holeRadius ?? size.width / (2 + data.length);
|
||||||
final double stackDistance =
|
final double stackDistance =
|
||||||
@ -47,7 +53,7 @@ class CircularChart {
|
|||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
return new CircularChart(stacks, chartType);
|
return new CircularChart(stacks, chartType, edgeStyle: edgeStyle);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -63,5 +69,6 @@ class CircularChartTween extends Tween<CircularChart> {
|
|||||||
CircularChart lerp(double t) => new CircularChart(
|
CircularChart lerp(double t) => new CircularChart(
|
||||||
_stacksTween.lerp(t),
|
_stacksTween.lerp(t),
|
||||||
begin.chartType,
|
begin.chartType,
|
||||||
|
edgeStyle: end.edgeStyle,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user