在Flutter中,选择时间可以通过以下几种常用方式实现:
1. 使用 showTimePicker(系统默认时间选择器)
Future<void> _selectTime() async {
final TimeOfDay? picked = await showTimePicker(
context: context,
initialTime: TimeOfDay.now(),
builder: (BuildContext context, Widget? child) {
return Theme(
data: ThemeData.light(),
child: child!,
);
},
);
if (picked != null) {
print('选择的时间: ${picked.format(context)}');
}
}
2. 使用第三方库 flutter_datetime_picker
在 pubspec.yaml 中添加依赖:
dependencies:
flutter_datetime_picker: ^1.5.1
使用示例:
import 'package:flutter_datetime_picker/flutter_datetime_picker.dart';
DatePicker.showTimePicker(
context,
showTitleActions: true,
onConfirm: (time) {
print('选择的时间: $time');
},
currentTime: DateTime.now(),
);
3. 自定义时间选择器
使用 CupertinoDatePicker 创建 iOS 风格的时间选择器:
showModalBottomSheet(
context: context,
builder: (BuildContext builder) {
return Container(
height: 300,
child: CupertinoDatePicker(
mode: CupertinoDatePickerMode.time,
initialDateTime: DateTime.now(),
onDateTimeChanged: (DateTime newDate) {
print('选择的时间: $newDate');
},
),
);
},
);
推荐方案
- 简单需求:使用
showTimePicker
- 更多定制需求:使用
flutter_datetime_picker
- 平台特定风格:使用
CupertinoDatePicker(iOS风格)或 Material 组件
选择哪种方式取决于你的具体需求和设计风格要求。