diff --git a/lib/main.dart b/lib/main.dart index b81343d..14d2610 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -31,10 +31,9 @@ class MyHomePageState extends State { MyHomePageState(); GlobalKey _globalKey = GlobalKey(); - ChartSeriesController? _seriesController; - final ScrollController _scrollController = ScrollController(); + ChartSeriesController<_ChartData, num>? _seriesController; late ZoomPanBehavior _zoomPanBehavior; - late List _chartData; + late List<_ChartData> _chartData; bool _isLoadMoreView = false; bool _isNeedToUpdateView = false; bool _isDataUpdated = true; @@ -43,16 +42,16 @@ class MyHomePageState extends State { @override void initState() { - _chartData = [ - ChartData(x: 0, y: 326), - ChartData(x: 1, y: 416), - ChartData(x: 2, y: 290), - ChartData(x: 3, y: 70), - ChartData(x: 4, y: 500), - ChartData(x: 5, y: 416), - ChartData(x: 6, y: 290), - ChartData(x: 7, y: 120), - ChartData(x: 8, y: 500), + _chartData = <_ChartData>[ + _ChartData(x: 0, y: 326), + _ChartData(x: 1, y: 416), + _ChartData(x: 2, y: 290), + _ChartData(x: 3, y: 70), + _ChartData(x: 4, y: 500), + _ChartData(x: 5, y: 416), + _ChartData(x: 6, y: 290), + _ChartData(x: 7, y: 120), + _ChartData(x: 8, y: 500), ]; _zoomPanBehavior = ZoomPanBehavior(enablePanning: true); super.initState(); @@ -109,13 +108,13 @@ class MyHomePageState extends State { ); } - List> _buildSeries() { + List> _buildSeries() { const Color color = Color.fromARGB(255, 13, 157, 35); - return >[ - SplineAreaSeries( + return >[ + SplineAreaSeries<_ChartData, num>( dataSource: _chartData, - xValueMapper: (ChartData data, int index) => data.x!, - yValueMapper: (ChartData data, int index) => data.y!, + xValueMapper: (_ChartData data, int index) => data.x!, + yValueMapper: (_ChartData data, int index) => data.y!, borderColor: color, gradient: LinearGradient( colors: [color.withOpacity(0.3), Colors.white], @@ -123,7 +122,7 @@ class MyHomePageState extends State { begin: Alignment.topCenter, end: Alignment.bottomCenter, ), - onRendererCreated: (ChartSeriesController controller) { + onRendererCreated: (ChartSeriesController<_ChartData, num> controller) { _seriesController = controller; }, ), @@ -185,7 +184,7 @@ class MyHomePageState extends State { void _updateData() { for (int i = 0; i < 4; i++) { - _chartData.add(ChartData( + _chartData.add(_ChartData( x: _chartData[_chartData.length - 1].x! + 1, y: _randomInt(0, 600), )); @@ -212,8 +211,9 @@ class MyHomePageState extends State { List _indexes(int length) { final List indexes = []; final int lastIndex = length - 1; + final int dataLastIndex = _chartData.length - 1; for (int i = lastIndex; i >= 0; i--) { - indexes.add(_chartData.length - 1 - i); + indexes.add(dataLastIndex - i); } return indexes; } @@ -227,13 +227,12 @@ class MyHomePageState extends State { @override void dispose() { _seriesController = null; - _scrollController.dispose(); super.dispose(); } } -class ChartData { - ChartData({this.x, this.y}); +class _ChartData { + _ChartData({this.x, this.y}); num? x; num? y; } diff --git a/pubspec.lock b/pubspec.lock deleted file mode 100644 index 0e339c1..0000000 --- a/pubspec.lock +++ /dev/null @@ -1,237 +0,0 @@ -# Generated by pub -# See https://dart.dev/tools/pub/glossary#lockfile -packages: - async: - dependency: transitive - description: - name: async - sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" - url: "https://pub.dev" - source: hosted - version: "2.11.0" - boolean_selector: - dependency: transitive - description: - name: boolean_selector - sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" - url: "https://pub.dev" - source: hosted - version: "2.1.1" - characters: - dependency: transitive - description: - name: characters - sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" - url: "https://pub.dev" - source: hosted - version: "1.3.0" - clock: - dependency: transitive - description: - name: clock - sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf - url: "https://pub.dev" - source: hosted - version: "1.1.1" - collection: - dependency: transitive - description: - name: collection - sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a - url: "https://pub.dev" - source: hosted - version: "1.18.0" - cupertino_icons: - dependency: "direct main" - description: - name: cupertino_icons - sha256: ba631d1c7f7bef6b729a622b7b752645a2d076dba9976925b8f25725a30e1ee6 - url: "https://pub.dev" - source: hosted - version: "1.0.8" - fake_async: - dependency: transitive - description: - name: fake_async - sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" - url: "https://pub.dev" - source: hosted - version: "1.3.1" - flutter: - dependency: "direct main" - description: flutter - source: sdk - version: "0.0.0" - flutter_lints: - dependency: "direct dev" - description: - name: flutter_lints - sha256: "9e8c3858111da373efc5aa341de011d9bd23e2c5c5e0c62bccf32438e192d7b1" - url: "https://pub.dev" - source: hosted - version: "3.0.2" - flutter_test: - dependency: "direct dev" - description: flutter - source: sdk - version: "0.0.0" - intl: - dependency: transitive - description: - name: intl - sha256: d6f56758b7d3014a48af9701c085700aac781a92a87a62b1333b46d8879661cf - url: "https://pub.dev" - source: hosted - version: "0.19.0" - leak_tracker: - dependency: transitive - description: - name: leak_tracker - sha256: "7f0df31977cb2c0b88585095d168e689669a2cc9b97c309665e3386f3e9d341a" - url: "https://pub.dev" - source: hosted - version: "10.0.4" - leak_tracker_flutter_testing: - dependency: transitive - description: - name: leak_tracker_flutter_testing - sha256: "06e98f569d004c1315b991ded39924b21af84cf14cc94791b8aea337d25b57f8" - url: "https://pub.dev" - source: hosted - version: "3.0.3" - leak_tracker_testing: - dependency: transitive - description: - name: leak_tracker_testing - sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" - url: "https://pub.dev" - source: hosted - version: "3.0.1" - lints: - dependency: transitive - description: - name: lints - sha256: cbf8d4b858bb0134ef3ef87841abdf8d63bfc255c266b7bf6b39daa1085c4290 - url: "https://pub.dev" - source: hosted - version: "3.0.0" - matcher: - dependency: transitive - description: - name: matcher - sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb - url: "https://pub.dev" - source: hosted - version: "0.12.16+1" - material_color_utilities: - dependency: transitive - description: - name: material_color_utilities - sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a" - url: "https://pub.dev" - source: hosted - version: "0.8.0" - meta: - dependency: transitive - description: - name: meta - sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136" - url: "https://pub.dev" - source: hosted - version: "1.12.0" - path: - dependency: transitive - description: - name: path - sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" - url: "https://pub.dev" - source: hosted - version: "1.9.0" - sky_engine: - dependency: transitive - description: flutter - source: sdk - version: "0.0.99" - source_span: - dependency: transitive - description: - name: source_span - sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" - url: "https://pub.dev" - source: hosted - version: "1.10.0" - stack_trace: - dependency: transitive - description: - name: stack_trace - sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b" - url: "https://pub.dev" - source: hosted - version: "1.11.1" - stream_channel: - dependency: transitive - description: - name: stream_channel - sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 - url: "https://pub.dev" - source: hosted - version: "2.1.2" - string_scanner: - dependency: transitive - description: - name: string_scanner - sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" - url: "https://pub.dev" - source: hosted - version: "1.2.0" - syncfusion_flutter_charts: - dependency: "direct main" - description: - name: syncfusion_flutter_charts - sha256: dc4ad537a0e6d1d751c934509c270aa9bf09958bd6357b4dc744d809d6a8b5d7 - url: "https://pub.dev" - source: hosted - version: "26.2.4" - syncfusion_flutter_core: - dependency: transitive - description: - name: syncfusion_flutter_core - sha256: "34920fc391f9562d68657b9b25be6e873a67e069a52bcf41ae583b7eb46dcb26" - url: "https://pub.dev" - source: hosted - version: "26.2.4" - term_glyph: - dependency: transitive - description: - name: term_glyph - sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 - url: "https://pub.dev" - source: hosted - version: "1.2.1" - test_api: - dependency: transitive - description: - name: test_api - sha256: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f" - url: "https://pub.dev" - source: hosted - version: "0.7.0" - vector_math: - dependency: transitive - description: - name: vector_math - sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" - url: "https://pub.dev" - source: hosted - version: "2.1.4" - vm_service: - dependency: transitive - description: - name: vm_service - sha256: "3923c89304b715fb1eb6423f017651664a03bf5f4b29983627c4da791f74a4ec" - url: "https://pub.dev" - source: hosted - version: "14.2.1" -sdks: - dart: ">=3.4.3 <4.0.0" - flutter: ">=3.18.0-18.0.pre.54"