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 == Color.fromARGB(255, 255, 0, 0)) return 'GPS(G)'; if (color == Color.fromARGB(255, 0, 255, 0)) return 'GLONASS(R)'; if (color == Color.fromARGB(255, 0, 0, 255)) return 'GALILEO(E)'; if (color == Color.fromARGB(255, 255, 255, 0)) return 'BEIDOU(B)'; if (color == Color.fromARGB(255, 0, 255, 255)) return 'QZSS(Q)'; 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); } }); }, signalColorList: [], ), Expanded( child: Center( child: ChartPart(), // 将组颜色传递给 ChartPart ), ), ], ); }), ); } }