Skip to content

Commit 7c16c78

Browse files
committed
feat: added layout
1 parent 4e9f76c commit 7c16c78

File tree

2 files changed

+112
-1
lines changed

2 files changed

+112
-1
lines changed

lib/view/wave_generator_screen.dart

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
import 'package:flutter/widgets.dart';
2+
import 'package:pslab/theme/colors.dart';
23
import 'package:pslab/view/widgets/common_scaffold_widget.dart';
4+
import 'package:pslab/view/widgets/wave_generator_graph.dart';
35

46
class WaveGeneratorScreen extends StatefulWidget {
57
const WaveGeneratorScreen({super.key});
@@ -13,7 +15,24 @@ class _WaveGeneratorScreenState extends State<WaveGeneratorScreen> {
1315
Widget build(BuildContext context) {
1416
return CommonScaffold(
1517
title: 'Wave Generator',
16-
body: Container(),
18+
body: Container(
19+
margin: const EdgeInsets.all(8.0),
20+
child: Column(
21+
children: [
22+
Expanded(
23+
flex: 30,
24+
child: Container(
25+
color: chartBackgroundColor,
26+
child: WaveGeneratorGraph(),
27+
),
28+
),
29+
Expanded(
30+
flex: 70,
31+
child: Container(),
32+
),
33+
],
34+
),
35+
),
1736
);
1837
}
1938
}
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
import 'package:fl_chart/fl_chart.dart';
2+
import 'package:flutter/cupertino.dart';
3+
import 'package:pslab/theme/colors.dart';
4+
5+
class WaveGeneratorGraph extends StatefulWidget {
6+
const WaveGeneratorGraph({super.key});
7+
@override
8+
State<StatefulWidget> createState() => _WaveGeneratorGraphState();
9+
}
10+
11+
class _WaveGeneratorGraphState extends State<WaveGeneratorGraph> {
12+
Widget topTitleWidgets(double value, TitleMeta meta) {
13+
final style = TextStyle(
14+
color: chartTextColor,
15+
fontSize: 9,
16+
);
17+
return SideTitleWidget(
18+
meta: meta,
19+
child: Text(
20+
maxLines: 1,
21+
meta.formattedValue,
22+
style: style,
23+
),
24+
);
25+
}
26+
27+
@override
28+
Widget build(BuildContext context) {
29+
return Container(
30+
padding: const EdgeInsets.only(left: 20, right: 20, bottom: 20),
31+
child: LineChart(
32+
LineChartData(
33+
backgroundColor: chartBackgroundColor,
34+
titlesData: FlTitlesData(
35+
show: true,
36+
topTitles: AxisTitles(
37+
sideTitles: SideTitles(
38+
interval: 1000.0,
39+
reservedSize: 20,
40+
showTitles: true,
41+
getTitlesWidget: topTitleWidgets,
42+
),
43+
),
44+
bottomTitles: const AxisTitles(
45+
sideTitles: SideTitles(
46+
showTitles: false,
47+
),
48+
),
49+
leftTitles: AxisTitles(
50+
sideTitles: SideTitles(
51+
showTitles: false,
52+
),
53+
),
54+
rightTitles: AxisTitles(
55+
sideTitles: SideTitles(
56+
showTitles: false,
57+
),
58+
),
59+
),
60+
gridData: FlGridData(
61+
show: true,
62+
horizontalInterval: 1.0,
63+
drawHorizontalLine: true,
64+
drawVerticalLine: true,
65+
),
66+
borderData: FlBorderData(
67+
show: true,
68+
border: Border(
69+
bottom: BorderSide(
70+
color: chartBorderColor,
71+
),
72+
left: BorderSide(
73+
color: chartBorderColor,
74+
),
75+
top: BorderSide(
76+
color: chartBorderColor,
77+
),
78+
right: BorderSide(
79+
color: chartBorderColor,
80+
),
81+
),
82+
),
83+
clipData: const FlClipData.all(),
84+
maxY: 5.0,
85+
minY: -5.0,
86+
maxX: 5000.0,
87+
minX: 0.0,
88+
),
89+
),
90+
);
91+
}
92+
}

0 commit comments

Comments
 (0)