import 'package:flutter/material.dart'; import 'chartpart.dart'; import 'singlebutton.dart'; class SignalQuality extends StatefulWidget { @override _SignalQualityState createState() => _SignalQualityState(); } class _SignalQualityState extends State { Color selectedColor = Colors.blue; // 默认颜色 List colors = [Colors.blue, Colors.red, Colors.green, Colors.orange]; List> groupColors = []; // 存储每个组的颜色 @override void initState() { super.initState(); // 初始化每个组的颜色 for (int i = 0; i < 4; i++) { groupColors.add([colors[i % colors.length], colors[(i + 1) % colors.length]]); } } void updateGroupColor(int groupIndex, Color color) { setState(() { for (int i = 0; i < groupColors.length; i++) { // 只保留与选中颜色相同的颜色 groupColors[i] = groupColors[i].first == color ? [color] : [Colors.transparent]; } }); } String colorToString(Color color) { // 将颜色转换为字符串 if (color == Colors.blue) return 'GPS'; if (color == Colors.red) return 'BDS'; if (color == Colors.green) return 'GLO'; if (color == Colors.orange) return 'ALS'; return 'Unknown Color'; } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('信号质量'), ), body: OrientationBuilder(builder: (context, orientation) { return Column( children: [ SingleButton( colors: colors, onSelectionChanged: (color) { setState(() { selectedColor = color; // 更新选中的颜色 // 更新所有组为选中颜色 for (int i = 0; i < groupColors.length; i++) { updateGroupColor(i, selectedColor); } }); }, ), Expanded( child: Center( child: ChartPart(: groupColors), // 将组颜色传递给 ChartPart ), ), ], ); }), ); } }