add listView year dropdown

This commit is contained in:
2026-01-26 15:23:13 +01:00
parent 3990a8a34e
commit 78e27ac8d0
4 changed files with 73 additions and 3 deletions

View File

@@ -9,6 +9,7 @@ class HomeController extends GetxController {
final isLoading = false.obs;
final listTankModel = <TankModel>[].obs;
final appwriteService = AppwriteService();
final currentYear = DateTime.now().year.obs;
@override
void onInit() {
@@ -22,12 +23,17 @@ class HomeController extends GetxController {
@override
void onClose() {}
void changeYear(int year) {
currentYear.value = year;
_loadListDocument();
update();
}
Future<void> _loadListDocument() async {
isLoading.value = true;
if (listTankModel.isNotEmpty) {
listTankModel.clear();
}
var dateYear = DateTime.now().year;
var userId = await appwriteService.getCurrentUserId();
if (userId == null) {
//User nicht eingeloggt, evtl. zur Login-Seite navigieren
@@ -46,7 +52,7 @@ class HomeController extends GetxController {
if (listTankModel.isNotEmpty) {
var sortList = listTankModel.where((tank) {
var year = (DateTime.tryParse(tank.szDate)!).year;
return year == dateYear;
return year == currentYear.value;
}).toList();
listTankModel.clear();
listTankModel.addAll(sortList);

View File

@@ -8,3 +8,7 @@ import 'package:intl/intl.dart';
String getCurrentDate(DateTime date) {
return DateFormat("yyyy-MM-dd").format(date);
}
var kListDropDownYear = <int>[
for (var year = DateTime.now().year; year >= 2020; year--) year
];

View File

@@ -1,6 +1,7 @@
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import '../controller/home_controller.dart';
import '../widgets/my_drop_down_year_widget.dart';
import '../widgets/my_styled_loading_indicator.dart';
class HomePage extends GetView<HomeController> {
@@ -15,9 +16,33 @@ class HomePage extends GetView<HomeController> {
child: SafeArea(
child: Scaffold(
appBar: AppBar(
toolbarHeight: 100,
backgroundColor: Colors.blueGrey,
foregroundColor: Colors.white,
title: const Text('Tank List'),
title: Column(
children: [
const Text('Tank List'),
Container(
padding: const EdgeInsets.symmetric(horizontal: 18),
decoration: BoxDecoration(
color: Colors.blue.shade700,
borderRadius: BorderRadius.circular(8),
border: Border.all(color: Colors.white, width: 2),
boxShadow: [
BoxShadow(
color: Colors.white.withAlpha(120),
spreadRadius: 1,
blurRadius: 2,
offset: const Offset(0, 3),
),
],
),
width: 150,
height: 50,
child: MyDropDownYear(homCtrl: homCtrl),
),
],
),
centerTitle: true,
actions: [
IconButton(

View File

@@ -0,0 +1,35 @@
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import '../controller/home_controller.dart';
import '../helper/helper.dart';
class MyDropDownYear extends StatelessWidget {
const MyDropDownYear({super.key, required this.homCtrl});
final HomeController homCtrl;
@override
Widget build(BuildContext context) {
return Obx(
() => DropdownButton<int>(
menuWidth: 150,
value: homCtrl.currentYear.value,
dropdownColor: Colors.blueGrey,
underline: Container(),
style: const TextStyle(color: Colors.white, fontSize: 16),
items: kListDropDownYear.map((year) {
return DropdownMenuItem<int>(
value: year,
child: Text(year.toString()),
);
}).toList(),
onChanged: (selectedYear) {
if (selectedYear != null) {
homCtrl.changeYear(selectedYear);
}
},
),
);
}
}