|
- import 'package:farm_tpf/utils/const_style.dart';
- import 'package:flutter/material.dart';
- import 'package:flutter_datetime_picker/flutter_datetime_picker.dart';
- import 'package:farm_tpf/utils/formatter.dart';
- import 'package:get/get.dart';
- import 'package:get/state_manager.dart';
-
- class WidgetFieldDateTimePicker extends StatefulWidget {
- final DateTime initDateTime;
- final Function(DateTime selectedDateTimeLocal) onUpdateDateTime;
- WidgetFieldDateTimePicker(
- {@required this.initDateTime, @required this.onUpdateDateTime});
- @override
- _WidgetFieldDateTimePickerState createState() =>
- _WidgetFieldDateTimePickerState();
- }
-
- class _WidgetFieldDateTimePickerState extends State<WidgetFieldDateTimePicker> {
- var changeDate = Get.put(ChangeDateTimePicker());
- @override
- void initState() {
- super.initState();
- changeDate.initValue(selectedDate: widget.initDateTime);
- widget.onUpdateDateTime(changeDate.selectedDateTime);
- }
-
- @override
- Widget build(BuildContext context) {
- return GetBuilder<ChangeDateTimePicker>(builder: (value) {
- return FlatButton(
- padding:
- EdgeInsets.only(top: 0.0, right: 0.0, bottom: 0.0, left: 0.0),
- onPressed: () {
- DatePicker.showDateTimePicker(context,
- showTitleActions: true,
- onChanged: (date) {}, onConfirm: (date) {
- changeDate.change(date);
- widget.onUpdateDateTime(date);
- }, currentTime: value.selectedDateTime, locale: LocaleType.vi);
- },
- child: Container(
- padding: EdgeInsets.only(
- top: 0.0, right: 0.0, bottom: 10.5, left: 0.0),
- decoration: BoxDecoration(
- border: kBorderTextField,
- ),
- child: Row(
- children: [
- Expanded(
- child: Text(
- value.selectedDateTime.displayDateTime_DDMMYYYY_HHmm(),
- style: TextStyle(fontSize: 14.0, color: Colors.black87),
- )),
- Icon(
- Icons.date_range,
- color: Colors.blue,
- ),
- ],
- )));
- });
- }
- }
-
- class ChangeDateTimePicker extends GetxController {
- DateTime selectedDateTime;
- initValue({DateTime selectedDate}) {
- selectedDateTime = selectedDate ?? DateTime.now();
- update();
- }
-
- change(DateTime dateTime) {
- selectedDateTime = dateTime;
- update();
- }
- }
|