Flutter日期时间选择器插件daymoonpicker的使用
Flutter日期时间选择器插件daymoonpicker的使用
daymoonpicker
是一个简单的日期和时间选择器插件。以下是其使用方法及完整的示例代码。
使用方法
引入依赖
首先,在你的 pubspec.yaml
文件中添加 daymoonpicker
依赖:
dependencies:
daymoonpicker: ^x.x.x
然后运行 flutter pub get
来安装依赖。
示例代码
import 'package:daymoonpicker/lib/constants.dart';
import 'package:daymoonpicker/lib/daynight_timepicker.dart';
import 'package:flutter/material.dart';
void main() => runApp(const MyApp());
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
title: '时间选择器',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: const Home(),
);
}
}
class Home extends StatefulWidget {
const Home({Key? key}) : super(key: key);
[@override](/user/override)
// ignore: library_private_types_in_public_api
_HomeState createState() => _HomeState();
}
class _HomeState extends State<Home> {
TimeOfDay _time = TimeOfDay.now().replacing(hour: 11, minute: 30);
bool iosStyle = true;
void onTimeChanged(TimeOfDay newTime) {
setState(() {
_time = newTime;
});
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
body: SafeArea(
child: Center(
child: SingleChildScrollView(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(
"弹出式选择器样式",
style: Theme.of(context).textTheme.headline6,
),
Text(
_time.format(context),
textAlign: TextAlign.center,
style: Theme.of(context).textTheme.headline1,
),
const SizedBox(height: 10),
TextButton(
style: TextButton.styleFrom(
backgroundColor: Theme.of(context).colorScheme.secondary,
),
onPressed: () {
Navigator.of(context).push(
showPicker(
context: context,
value: _time,
onChange: onTimeChanged,
minuteInterval: MinuteInterval.FIVE,
// 可选参数,接收DateTime值
onChangeDateTime: (DateTime dateTime) {
// print(dateTime);
debugPrint("[调试日期时间]: $dateTime");
},
),
);
},
child: const Text(
"打开时间选择器",
style: TextStyle(color: Colors.white),
),
),
const SizedBox(height: 10),
const Divider(),
const SizedBox(height: 10),
Text(
"内联选择器样式",
style: Theme.of(context).textTheme.headline6,
),
// 渲染内联组件
createInlinePicker(
elevation: 1,
value: _time,
onChange: onTimeChanged,
minuteInterval: MinuteInterval.FIVE,
iosStylePicker: iosStyle,
minHour: 9,
maxHour: 21,
is24HrFormat: false,
),
Text(
"iOS样式",
style: Theme.of(context).textTheme.bodyText1,
),
Switch(
value: iosStyle,
onChanged: (newVal) {
setState(() {
iosStyle = newVal;
});
},
)
],
),
),
),
),
);
}
}
更多关于Flutter日期时间选择器插件daymoonpicker的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter日期时间选择器插件daymoonpicker的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
daymoonpicker
是 Flutter 中一个用于选择日期和时间的插件。它提供了一个美观且易于使用的界面,支持日期、时间以及日期时间的选择。以下是如何在 Flutter 项目中使用 daymoonpicker
插件的步骤。
1. 添加依赖
首先,在 pubspec.yaml
文件中添加 daymoonpicker
依赖:
dependencies:
flutter:
sdk: flutter
daymoonpicker: ^1.0.0 # 请使用最新版本
然后运行 flutter pub get
以安装依赖。
2. 导入包
在需要使用 daymoonpicker
的 Dart 文件中导入包:
import 'package:daymoonpicker/daymoonpicker.dart';
3. 使用 DayMoonPicker
DayMoonPicker
提供了多种选择器,包括日期选择器、时间选择器以及日期时间选择器。以下是使用这些选择器的示例。
日期选择器
DateTime selectedDate = DateTime.now();
void _showDatePicker(BuildContext context) async {
final DateTime? picked = await DayMoonPicker.showDatePicker(
context: context,
initialDate: selectedDate,
firstDate: DateTime(2000),
lastDate: DateTime(2100),
);
if (picked != null && picked != selectedDate) {
setState(() {
selectedDate = picked;
});
}
}
时间选择器
TimeOfDay selectedTime = TimeOfDay.now();
void _showTimePicker(BuildContext context) async {
final TimeOfDay? picked = await DayMoonPicker.showTimePicker(
context: context,
initialTime: selectedTime,
);
if (picked != null && picked != selectedTime) {
setState(() {
selectedTime = picked;
});
}
}
日期时间选择器
DateTime selectedDateTime = DateTime.now();
void _showDateTimePicker(BuildContext context) async {
final DateTime? picked = await DayMoonPicker.showDateTimePicker(
context: context,
initialDate: selectedDateTime,
firstDate: DateTime(2000),
lastDate: DateTime(2100),
);
if (picked != null && picked != selectedDateTime) {
setState(() {
selectedDateTime = picked;
});
}
}
4. 在 UI 中触发选择器
你可以在按钮的 onPressed
事件中调用上述方法来显示选择器:
ElevatedButton(
onPressed: () => _showDatePicker(context),
child: Text('选择日期'),
);
ElevatedButton(
onPressed: () => _showTimePicker(context),
child: Text('选择时间'),
);
ElevatedButton(
onPressed: () => _showDateTimePicker(context),
child: Text('选择日期和时间'),
);
5. 自定义选择器
DayMoonPicker
还提供了一些自定义选项,例如颜色、主题等。你可以在调用 showDatePicker
、showTimePicker
或 showDateTimePicker
时传递这些参数来自定义选择器的外观。
final DateTime? picked = await DayMoonPicker.showDatePicker(
context: context,
initialDate: selectedDate,
firstDate: DateTime(2000),
lastDate: DateTime(2100),
theme: ThemeData.light().copyWith(
primaryColor: Colors.blue,
accentColor: Colors.blueAccent,
colorScheme: ColorScheme.light(primary: Colors.blue),
buttonTheme: ButtonThemeData(textTheme: ButtonTextTheme.primary),
),
);
6. 处理选择结果
在选择器返回后,你可以根据用户的选择更新 UI 或执行其他操作。
7. 运行项目
确保你的 Flutter 项目已经正确配置,然后运行项目以查看 daymoonpicker
的效果。
flutter run