Flutter中如何使用CupertinoDatePicker
在Flutter中如何使用CupertinoDatePicker?我想在iOS风格的App中添加一个日期选择器,但不知道如何正确配置CupertinoDatePicker的初始日期、日期范围以及如何获取用户选择的日期值。能否提供完整的示例代码,包括如何设置最小/最大日期限制以及处理日期变更的回调函数?
2 回复
在Flutter中,使用CupertinoDatePicker可以创建iOS风格的日期选择器。以下是基本用法:
- 首先确保在pubspec.yaml中引入了cupertino包(通常Flutter已内置):
dependencies:
flutter:
sdk: flutter
cupertino_icons: ^1.0.2
- 基本使用代码:
import 'package:flutter/cupertino.dart';
class DatePickerExample extends StatefulWidget {
@override
_DatePickerExampleState createState() => _DatePickerExampleState();
}
class _DatePickerExampleState extends State<DatePickerExample> {
DateTime selectedDate = DateTime.now();
void _showDatePicker(BuildContext context) {
showCupertinoModalPopup(
context: context,
builder: (BuildContext context) {
return Container(
height: 300,
child: CupertinoDatePicker(
mode: CupertinoDatePickerMode.dateAndTime,
initialDateTime: selectedDate,
onDateTimeChanged: (DateTime newDate) {
setState(() {
selectedDate = newDate;
});
},
),
);
},
);
}
@override
Widget build(BuildContext context) {
return CupertinoPageScaffold(
navigationBar: CupertinoNavigationBar(
middle: Text('日期选择器示例'),
),
child: Center(
child: CupertinoButton(
onPressed: () => _showDatePicker(context),
child: Text('选择日期: ${selectedDate.toString()}'),
),
),
);
}
}
主要参数说明:
mode:选择模式,可选:date:仅日期time:仅时间dateAndTime:日期和时间monthYear:年月
initialDateTime:初始日期时间minimumDate/maximumDate:最小/最大日期限制onDateTimeChanged:日期改变回调
注意:CupertinoDatePicker通常需要放在CupertinoPageScaffold等Cupertino风格组件中才能获得最佳视觉效果。


