Add randomly generated radials example
This commit is contained in:
parent
f4084f9d1d
commit
96f3fd172d
75
example/animated_random_radial_chart_example.dart
Normal file
75
example/animated_random_radial_chart_example.dart
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter_circular_chart/flutter_circular_chart.dart';
|
||||||
|
import 'dart:math' as Math;
|
||||||
|
|
||||||
|
import 'color_palette.dart';
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
runApp(new MaterialApp(
|
||||||
|
home: new RandomizedRadialChartExample(),
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
class RandomizedRadialChartExample extends StatefulWidget {
|
||||||
|
@override
|
||||||
|
_RandomizedRadialChartExampleState createState() =>
|
||||||
|
new _RandomizedRadialChartExampleState();
|
||||||
|
}
|
||||||
|
|
||||||
|
class _RandomizedRadialChartExampleState
|
||||||
|
extends State<RandomizedRadialChartExample> {
|
||||||
|
final GlobalKey<AnimatedCircularChartState> _chartKey =
|
||||||
|
new GlobalKey<AnimatedCircularChartState>();
|
||||||
|
final _chartSize = const Size(300.0, 300.0);
|
||||||
|
final Math.Random random = new Math.Random();
|
||||||
|
List<CircularStackEntry> data;
|
||||||
|
|
||||||
|
@override
|
||||||
|
void initState() {
|
||||||
|
data = _generateRandomData();
|
||||||
|
}
|
||||||
|
|
||||||
|
double value = 50.0;
|
||||||
|
|
||||||
|
void _randomize() {
|
||||||
|
setState(() {
|
||||||
|
data = _generateRandomData();
|
||||||
|
_chartKey.currentState.updateData(data);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
List<CircularStackEntry> _generateRandomData() {
|
||||||
|
int stackCount = random.nextInt(10);
|
||||||
|
List<CircularStackEntry> data = new List.generate(stackCount, (i) {
|
||||||
|
int segCount = random.nextInt(10);
|
||||||
|
List<CircularSegmentEntry> segments = new List.generate(segCount, (j) {
|
||||||
|
Color randomColor = ColorPalette.primary.random(random);
|
||||||
|
return new CircularSegmentEntry(random.nextDouble(), randomColor);
|
||||||
|
});
|
||||||
|
return new CircularStackEntry(segments);
|
||||||
|
});
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return new Scaffold(
|
||||||
|
appBar: new AppBar(
|
||||||
|
title: const Text('Randomized radial data'),
|
||||||
|
),
|
||||||
|
body: new Center(
|
||||||
|
child: new AnimatedCircularChart(
|
||||||
|
key: _chartKey,
|
||||||
|
size: _chartSize,
|
||||||
|
initialChartData: data,
|
||||||
|
chartType: CircularChartType.Radial,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
floatingActionButton: new FloatingActionButton(
|
||||||
|
onPressed: _randomize,
|
||||||
|
child: const Icon(Icons.refresh),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
35
example/color_palette.dart
Normal file
35
example/color_palette.dart
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
import 'dart:math';
|
||||||
|
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
|
class ColorPalette {
|
||||||
|
static final ColorPalette primary = new ColorPalette(<Color>[
|
||||||
|
Colors.blue[400],
|
||||||
|
Colors.blue[200],
|
||||||
|
Colors.red[400],
|
||||||
|
Colors.red[200],
|
||||||
|
Colors.green[400],
|
||||||
|
Colors.green[200],
|
||||||
|
Colors.yellow[400],
|
||||||
|
Colors.yellow[200],
|
||||||
|
Colors.purple[400],
|
||||||
|
Colors.purple[200],
|
||||||
|
Colors.orange[400],
|
||||||
|
Colors.orange[200],
|
||||||
|
Colors.teal[400],
|
||||||
|
Colors.teal[200],
|
||||||
|
Colors.black,
|
||||||
|
]);
|
||||||
|
|
||||||
|
ColorPalette(List<Color> colors) : _colors = colors {
|
||||||
|
assert(colors.isNotEmpty);
|
||||||
|
}
|
||||||
|
|
||||||
|
final List<Color> _colors;
|
||||||
|
|
||||||
|
Color operator [](int index) => _colors[index % length];
|
||||||
|
|
||||||
|
int get length => _colors.length;
|
||||||
|
|
||||||
|
Color random(Random random) => this[random.nextInt(length)];
|
||||||
|
}
|
BIN
screenshots/animated_random_radial_chart_example.gif
Normal file
BIN
screenshots/animated_random_radial_chart_example.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.4 MiB |
Loading…
Reference in New Issue
Block a user