qhdkfq_regulatory_flutter/lib/Custom/dateTime_picker_bottom_shee...

73 lines
2.0 KiB
Dart

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
class DateTimePickerBottomSheet extends StatefulWidget {
final DateTime? initialDateTime;
final ValueChanged<DateTime> onDateTimeSelected;
const DateTimePickerBottomSheet({
super.key,
this.initialDateTime,
required this.onDateTimeSelected,
});
@override
State<DateTimePickerBottomSheet> createState() =>
_DateTimePickerBottomSheetState();
}
class _DateTimePickerBottomSheetState extends State<DateTimePickerBottomSheet> {
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,
),
),
],
),
);
}
}