import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:widgetpicker/widgetpicker.dart'; import '../../generated/l10n.dart'; import '../../utils/font_weight.dart'; class DatePickerWidget extends StatelessWidget { final _years = List.generate((DateTime.now().year - 2019 +1), (i) => "${i + 2019}年"); final _months = List.generate(12, (i) => "${i + 1}月"); final showChange; DatePickerWidget({this.showChange = true}); @override Widget build(BuildContext context) { bool monOn = true; String _currentYear = "${DateTime.now().year.toString()}年"; String _currentMonth = "${DateTime.now().month.toString()}月"; String _currentTimeStr = "${_currentYear.replaceAll("年", "")}-${_currentMonth.length == 2 ? "0${_currentMonth.replaceAll("月", "")}" : _currentMonth.replaceAll("月", "")}"; return StatefulBuilder(builder: (context1, state) { return Container( height: 260.h, decoration: BoxDecoration( color: Colors.white, borderRadius: BorderRadius.only( topLeft: Radius.circular(8), topRight: Radius.circular(8), ), ), child: Column( children: [ Container( height: 50.h, child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, crossAxisAlignment: CrossAxisAlignment.center, children: [ InkWell( onTap: () { Navigator.of(context).pop(); }, child: Container( child: Text( S.of(context).quxiao, style: TextStyle( fontSize: 16, fontWeight: MyFontWeight.semi_bold, color: Colors.black), ), margin: EdgeInsets.only(left: 6), padding: EdgeInsets.all(10), ), ), InkWell( onTap: () { Navigator.of(context).pop(_currentTimeStr); }, child: Container( child: Text( S.of(context).queren, style: TextStyle( fontSize: 16, fontWeight: MyFontWeight.semi_bold, color:Color(0xFF30415B)), ), margin: EdgeInsets.only(left: 6), padding: EdgeInsets.all(10), ), ), ], ), ), Container( height: 2.h, color: Color(0xFFF4F4F4), ), Expanded(child: Container( child: Row( mainAxisAlignment: MainAxisAlignment.center, children: [ WidgetPicker( value: _currentYear, options: _years, textStyle: TextStyle( fontSize: 16.sp, color: Color(0xFFDDDDDD),), selectedTextStyle: TextStyle(fontSize: 16.sp, color: Colors.black,fontWeight: MyFontWeight.medium), onChanged: (value) => state(() => { _currentYear = value, _currentTimeStr = monOn ? "${_currentYear.replaceAll("年", "")}-${_currentMonth.length == 2 ? "0${_currentMonth.replaceAll("月", "")}" : _currentMonth.replaceAll("月", "")}" : "${_currentYear.replaceAll("年", "")}" }), ), if (monOn) WidgetPicker( value: _currentMonth, options: _months, textStyle: TextStyle( fontSize: 16.sp, color: Color(0xFFDDDDDD)), selectedTextStyle: TextStyle(fontSize: 16.sp, color: Colors.black,fontWeight: MyFontWeight.medium), onChanged: (value) => state(() => { _currentMonth = value, _currentTimeStr = monOn ? "${_currentYear.replaceAll("年", "")}-${_currentMonth.length == 2 ? "0${_currentMonth.replaceAll("月", "")}" : _currentMonth.replaceAll("月", "")}" : "${_currentYear.replaceAll("年", "")}" }), ), ], ), )), ], ), ); }); } }