add listView year dropdown
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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
|
||||
];
|
||||
@@ -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(
|
||||
|
||||
35
lib/widgets/my_drop_down_year_widget.dart
Normal file
35
lib/widgets/my_drop_down_year_widget.dart
Normal 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);
|
||||
}
|
||||
},
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user