import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; class DateTimePickerBottomSheet extends StatefulWidget { final DateTime? initialDateTime; final ValueChanged onDateTimeSelected; const DateTimePickerBottomSheet({ super.key, this.initialDateTime, required this.onDateTimeSelected, }); @override State createState() => _DateTimePickerBottomSheetState(); } class _DateTimePickerBottomSheetState extends State { late DateTime _selectedDateTime; @override void initState() { super.initState(); _selectedDateTime = widget.initialDateTime ?? DateTime.now(); } @override Widget build(BuildContext context) { return Container( height: 300, padding: const EdgeInsets.all(16), child: Column( children: [ // 标题和按钮 Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ TextButton( onPressed: () => Navigator.pop(context), child: const Text('取消', style: TextStyle(color: Colors.grey)), ), TextButton( onPressed: () { widget.onDateTimeSelected(_selectedDateTime); Navigator.pop(context); }, child: const Text('确定', style: TextStyle(color: Colors.blue)), ), ], ), const SizedBox(height: 10), // 时间选择器 Expanded( child: CupertinoDatePicker( mode: CupertinoDatePickerMode.dateAndTime, initialDateTime: _selectedDateTime, onDateTimeChanged: (DateTime newDateTime) { setState(() { _selectedDateTime = newDateTime; }); }, use24hFormat: true, minuteInterval: 1, ), ), ], ), ); } }