add listView year dropdown
This commit is contained in:
@@ -9,6 +9,7 @@ class HomeController extends GetxController {
|
|||||||
final isLoading = false.obs;
|
final isLoading = false.obs;
|
||||||
final listTankModel = <TankModel>[].obs;
|
final listTankModel = <TankModel>[].obs;
|
||||||
final appwriteService = AppwriteService();
|
final appwriteService = AppwriteService();
|
||||||
|
final currentYear = DateTime.now().year.obs;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void onInit() {
|
void onInit() {
|
||||||
@@ -22,12 +23,17 @@ class HomeController extends GetxController {
|
|||||||
@override
|
@override
|
||||||
void onClose() {}
|
void onClose() {}
|
||||||
|
|
||||||
|
void changeYear(int year) {
|
||||||
|
currentYear.value = year;
|
||||||
|
_loadListDocument();
|
||||||
|
update();
|
||||||
|
}
|
||||||
|
|
||||||
Future<void> _loadListDocument() async {
|
Future<void> _loadListDocument() async {
|
||||||
isLoading.value = true;
|
isLoading.value = true;
|
||||||
if (listTankModel.isNotEmpty) {
|
if (listTankModel.isNotEmpty) {
|
||||||
listTankModel.clear();
|
listTankModel.clear();
|
||||||
}
|
}
|
||||||
var dateYear = DateTime.now().year;
|
|
||||||
var userId = await appwriteService.getCurrentUserId();
|
var userId = await appwriteService.getCurrentUserId();
|
||||||
if (userId == null) {
|
if (userId == null) {
|
||||||
//User nicht eingeloggt, evtl. zur Login-Seite navigieren
|
//User nicht eingeloggt, evtl. zur Login-Seite navigieren
|
||||||
@@ -46,7 +52,7 @@ class HomeController extends GetxController {
|
|||||||
if (listTankModel.isNotEmpty) {
|
if (listTankModel.isNotEmpty) {
|
||||||
var sortList = listTankModel.where((tank) {
|
var sortList = listTankModel.where((tank) {
|
||||||
var year = (DateTime.tryParse(tank.szDate)!).year;
|
var year = (DateTime.tryParse(tank.szDate)!).year;
|
||||||
return year == dateYear;
|
return year == currentYear.value;
|
||||||
}).toList();
|
}).toList();
|
||||||
listTankModel.clear();
|
listTankModel.clear();
|
||||||
listTankModel.addAll(sortList);
|
listTankModel.addAll(sortList);
|
||||||
|
|||||||
@@ -8,3 +8,7 @@ import 'package:intl/intl.dart';
|
|||||||
String getCurrentDate(DateTime date) {
|
String getCurrentDate(DateTime date) {
|
||||||
return DateFormat("yyyy-MM-dd").format(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:flutter/material.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import '../controller/home_controller.dart';
|
import '../controller/home_controller.dart';
|
||||||
|
import '../widgets/my_drop_down_year_widget.dart';
|
||||||
import '../widgets/my_styled_loading_indicator.dart';
|
import '../widgets/my_styled_loading_indicator.dart';
|
||||||
|
|
||||||
class HomePage extends GetView<HomeController> {
|
class HomePage extends GetView<HomeController> {
|
||||||
@@ -15,9 +16,33 @@ class HomePage extends GetView<HomeController> {
|
|||||||
child: SafeArea(
|
child: SafeArea(
|
||||||
child: Scaffold(
|
child: Scaffold(
|
||||||
appBar: AppBar(
|
appBar: AppBar(
|
||||||
|
toolbarHeight: 100,
|
||||||
backgroundColor: Colors.blueGrey,
|
backgroundColor: Colors.blueGrey,
|
||||||
foregroundColor: Colors.white,
|
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,
|
centerTitle: true,
|
||||||
actions: [
|
actions: [
|
||||||
IconButton(
|
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