Flutter伊斯兰日期选择器插件hijri_picker的使用
Flutter伊斯兰日期选择器插件hijri_picker的使用
Hijri Date Picker Islamic日期选择器
Flutter Widget & Picker 用于选择伊斯兰(希吉来历)日期。
Screenshots 图片
Simple Usage 简单使用方法
在 MaterialApp
中添加本地化:
localizationsDelegates: [
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
],
supportedLocales: [
const Locale('ar', 'SA'),
],
国际化的详细信息可以参考 国际化的Flutter应用。
调用 showHijriDatePicker
方法:
final HijriCalendar? picked = await showHijriDatePicker(
context: context,
initialDate: selectedDate,
lastDate: HijriCalendar()
..hYear = 1442
..hMonth = 9
..hDay = 25,
firstDate: HijriCalendar()
..hYear = 1438
..hMonth = 12
..hDay = 25,
initialDatePickerMode: DatePickerMode.day,
);
As Widget 使用为组件
将 HijriMonthPicker
组件嵌入到界面中:
HijriMonthPicker(
lastDate: HijriCalendar()
..hYear = 1445
..hMonth = 9
..hDay = 25,
firstDate: HijriCalendar()
..hYear = 1438
..hMonth = 12
..hDay = 25,
onChanged: (HijriCalendar value) {
setState(() {
selectedDate = selectedDate;
});
},
selectedDate: selectedDate,
)
示例代码
以下是一个完整的示例代码,展示了如何使用 hijri_picker
插件:
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:hijri/hijri_calendar.dart';
import 'package:hijri_picker/hijri_picker.dart';
void main() => runApp(new MyApp());
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return new MaterialApp(
title: 'Flutter Demo',
localizationsDelegates: [
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
],
supportedLocales: [
const Locale('ar', 'SA'),
],
debugShowCheckedModeBanner: false,
theme: new ThemeData(
primaryColor: Colors.brown,
accentColor: Colors.green,
brightness: Brightness.dark,
),
home: MyHomePage(title: "Umm Alqura Calendar"),
);
}
}
class MyHomePage extends StatefulWidget {
MyHomePage({Key? key, required this.title}) : super(key: key);
final String title;
[@override](/user/override)
_MyHomePageState createState() => new _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
var selectedDate = new HijriCalendar.now();
[@override](/user/override)
Widget build(BuildContext context) {
HijriCalendar.setLocal(Localizations.localeOf(context).languageCode);
return new Scaffold(
appBar: new AppBar(
title: new Text(widget.title),
),
body: new Padding(
padding: const EdgeInsets.all(8.0),
child: new Center(
child: new Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
new Text(
'${selectedDate.toString()}',
style: Theme.of(context).textTheme.headline5,
),
new Text(
'${selectedDate.fullDate()}',
style: Theme.of(context).textTheme.headline5,
),
],
),
),
),
floatingActionButton: new FloatingActionButton(
onPressed: () => _selectDate(context),
tooltip: 'Pick Date',
child: new Icon(Icons.event),
),
);
}
Future<Null> _selectDate(BuildContext context) async {
final HijriCalendar? picked = await showHijriDatePicker(
context: context,
initialDate: selectedDate,
lastDate: new HijriCalendar()
..hYear = 1445
..hMonth = 9
..hDay = 25,
firstDate: new HijriCalendar()
..hYear = 1438
..hMonth = 12
..hDay = 25,
initialDatePickerMode: DatePickerMode.day,
);
if (picked != null)
setState(() {
selectedDate = picked;
});
}
}
更多关于Flutter伊斯兰日期选择器插件hijri_picker的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter伊斯兰日期选择器插件hijri_picker的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是一个关于如何在Flutter应用中使用hijri_picker
插件来实现伊斯兰日期选择器的示例代码。这个插件允许用户选择一个伊斯兰(Hijri)日期。
首先,确保你已经在pubspec.yaml
文件中添加了hijri_picker
依赖:
dependencies:
flutter:
sdk: flutter
hijri_picker: ^最新版本号 # 请替换为当前最新版本号
然后运行flutter pub get
来安装依赖。
接下来,在你的Flutter应用中,你可以按照以下方式使用hijri_picker
:
import 'package:flutter/material.dart';
import 'package:hijri_picker/hijri_picker.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Hijri Date Picker Example',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
DateTime? selectedDate;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Hijri Date Picker Example'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(
selectedDate == null
? 'No date selected'
: 'Selected Date: ${selectedDate!.toLocal()}',
style: TextStyle(fontSize: 20),
),
SizedBox(height: 20),
ElevatedButton(
onPressed: () async {
final DateTime? pickedDate = await showHijriDatePicker(
context: context,
initialDate: selectedDate ?? DateTime.now(),
firstDate: DateTime(1300), // 伊斯兰历法的起始年份,这里可以调整
lastDate: DateTime(1500), // 可以根据需求调整
);
if (pickedDate != null && pickedDate != selectedDate) {
setState(() {
selectedDate = pickedDate;
});
}
},
child: Text('Select Hijri Date'),
),
],
),
),
);
}
}
在这个示例中,我们做了以下几件事:
- 导入必要的包:我们导入了
flutter/material.dart
和hijri_picker/hijri_picker.dart
。 - 创建主应用:
MyApp
是一个无状态组件,它定义了应用的主题和主页。 - 创建主页:
MyHomePage
是一个有状态组件,它包含一个用于显示选定日期的文本和一个按钮。 - 显示日期选择器:当用户点击按钮时,会调用
showHijriDatePicker
函数,显示一个伊斯兰日期选择器。 - 更新状态:用户选择日期后,我们更新组件的状态以显示新的日期。
请确保你根据hijri_picker
的最新文档调整代码,因为插件的API可能会随着版本更新而变化。你可以通过查看插件的官方仓库或pub.dev页面来获取最新的信息和示例。