2024-07-30 18:20:27 +08:00
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
|
|
|
|
import 'chartpart.dart';
|
|
|
|
import 'singlebutton.dart';
|
|
|
|
|
2024-07-31 19:04:11 +08:00
|
|
|
class SignalQuality extends StatefulWidget {
|
2024-07-30 18:20:27 +08:00
|
|
|
@override
|
2024-07-31 19:04:11 +08:00
|
|
|
_SignalQualityState createState() => _SignalQualityState();
|
2024-07-30 18:20:27 +08:00
|
|
|
}
|
|
|
|
|
2024-07-31 19:04:11 +08:00
|
|
|
class _SignalQualityState extends State<SignalQuality> {
|
2024-07-30 18:20:27 +08:00
|
|
|
Color selectedColor = Colors.blue; // 默认颜色
|
|
|
|
List<Color> colors = [Colors.blue, Colors.red, Colors.green, Colors.orange];
|
|
|
|
List<List<Color>> 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) {
|
|
|
|
// 将颜色转换为字符串
|
2024-07-31 19:04:11 +08:00
|
|
|
if (color == Colors.blue) return 'GPS';
|
|
|
|
if (color == Colors.red) return 'BDS';
|
|
|
|
if (color == Colors.green) return 'GLO';
|
|
|
|
if (color == Colors.orange) return 'ALS';
|
2024-07-30 18:20:27 +08:00
|
|
|
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(
|
2024-08-01 14:08:34 +08:00
|
|
|
child: ChartPart(: groupColors), // 将组颜色传递给 ChartPart
|
2024-07-30 18:20:27 +08:00
|
|
|
),
|
|
|
|
),
|
|
|
|
],
|
|
|
|
);
|
|
|
|
}),
|
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|