Aidra Connect 10.0.2+16
Aidra Connect Mobile Application
Loading...
Searching...
No Matches
energy_screen.dart
Go to the documentation of this file.
1import 'package:connect/core/ui/widgets/custom_scaffold.dart';
2import 'package:connect/core/ui/widgets/custom_text_form_field.dart';
3import 'package:connect/features/co2_emmissions/screens/energy/views/energy_savings_measure_view.dart';
4import 'package:connect/features/co2_emmissions/screens/energy/views/source_of_electricity_view.dart';
5import 'package:connect/features/co2_emmissions/screens/energy/views/track_consumtion_trend.dart';
6import 'package:connect/features/co2_emmissions/screens/energy/views/track_energy_consumption.dart';
7import 'package:connect/features/co2_emmissions/screens/energy/views/usage_over_6_months_view.dart';
8import 'package:flutter/material.dart';
9import 'package:flutter_screenutil/flutter_screenutil.dart';
10
11import '../widgets/page_navigator.dart';
12import 'views/monthly_electricity_consumtions_view.dart';
13
14class EnergyScreen extends StatefulWidget {
15 const EnergyScreen({super.key});
16
17 @override
18 State<EnergyScreen> createState() => _EnergyScreenState();
19}
20
21class _EnergyScreenState extends State<EnergyScreen> {
22 final PageController _pageController = PageController();
23 @override
24 Widget build(BuildContext context) {
25 return CustomScaffold(
26 isLeadingVisible: true,
27 title: 'Energy',
28 floating: PageNavigator(
29 tottalPages: 6,
30 currentPage: 0,
31 pageController: _pageController,
32 ),
33 body: SafeArea(
34 child: Padding(
35 padding: EdgeInsets.only(bottom: 70.sp),
36 child: PageView(
37 physics: NeverScrollableScrollPhysics(),
38 controller: _pageController,
39 children: [
40 MonthlyElectricityConsumptionsView(),
41 SourceofElectricityView(),
42 UsageOver6Months(),
43 EnergySavingsMeasure(),
44 TrackConsumptionTrend(),
45 TrackenergyConsumptionTrend(),
46 ],
47 ),
48 ),
49 ),
50 );
51 }
52}
53
54class CustomInputField extends StatelessWidget {
56 super.key,
57 required this.label,
58 required this.hint,
59 });
60
61 final String label;
62 final String hint;
63
64 @override
65 Widget build(BuildContext context) {
66 return Padding(
67 padding: EdgeInsets.only(bottom: 17.sp),
68 child: Column(
69 crossAxisAlignment: CrossAxisAlignment.start,
70 children: [
71 Text(
72 label,
73 style: Theme.of(context).textTheme.bodySmall,
74 ),
75 SizedBox(height: 10.sp),
77 hintText: 'input',
78 fillColor: Theme.of(context).highlightColor.withOpacity(0.11),
79 suffix: Padding(
80 padding: EdgeInsets.only(top: 13.sp, right: 10.sp),
81 child: Text(
82 hint,
83 style: Theme.of(context).textTheme.bodySmall?.copyWith(
84 color: Theme.of(context).colorScheme.primary,
85 height: 0.0,
86 ),
87 ),
88 ),
89 controller: TextEditingController(),
90 ),
91 ],
92 ),
93 );
94 }
95}
override State< EnergyScreen > createState()
const EnergyScreen({super.key})
const CustomInputField({ super.key, required this.label, required this.hint, })
final TextEditingController controller
final Widget child
override Widget build(BuildContext context)
const CustomTextFormField({ super.key, required this.hintText, required this.controller, this.suffix, this.focusNode, this.validator, this.isObscure=false, this.inputType, this.maxLines=1, this.padding, this.fillColor, this.labelText, this.inputFormatters, this.onChanged, })
final String label
final String hint
final Widget child
final EdgeInsets padding
class EnergyScreen extends StatefulWidget _pageController
override Widget build(BuildContext context)
final String title