gnssview_old/lib/quality/signalQuality_page.dart

75 lines
2.1 KiB
Dart
Raw Normal View History

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(
child: ChartPart(groupColors: groupColors), // 将组颜色传递给 ChartPart
),
),
],
);
}),
);
}
}