我需要显示一个阿拉伯语日期选择器,我不能用Locale构造函数控制它。它只能显示一个英语视图。
挑选日期方法
DateTime selectedDate = DateTime.now();
Future<void> _selectDate(BuildContext context) async {
final DateTime picked = await showDatePicker(
context: context,
initialDate: selectedDate,
firstDate: DateTime(2000, 1),
lastDate: DateTime(2100),
builder: (BuildContext context, Widget child) {
return Theme(
data: Theme.of(context).copyWith(
colorScheme: ColorScheme.light(primary: primaryColor)),
child: child,
);
});
if (picked != null && picked != selectedDate) {
selectedDate = picked;
}
}
主屏幕
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await GetStorage.init();
runApp(
MyApp(),
);
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return GetMaterialApp(
debugShowCheckedModeBanner: false,
translations: Translation(),
locale: Locale(AuthController().appLocal.value),
fallbackLocale: Locale(AuthController().appLocal.value),
title: 'Hesabate App',
theme: ThemeData(
canvasColor: Colors.transparent,
fontFamily: "NotoNaskhArabic_font",
),
initialRoute: AppRoutes.splashScreen,
getPages: AppRoutes.routes,
);
}
}
我在此变量中更新了语言(en&ar)
AuthController().appLocal.value
3条答案
按热度按时间j5fpnvbx1#
谢谢,我找到了我要找的解决方案。为了解决这个问题,我做了一些步骤:
为了以本地语言显示日期选择器,您需要使用flutter_localizations插件,并在主代码中的MaterialApp内指定localizationDelegates和supportedLocales
1.在pubspec.yaml中添加flutter_localizations插件并运行pub get。
2.导入dart文件中的插件
3.在MaterialApp中,添加以下内容
4.然后按如下所示实现默认的datePicker
5.最后,将前面的方法调用到日期TextField中,如下所示
kkbh8khc2#
你能更具体地说明你使用的是哪个软件包吗?例如flutter_datetime_picker有参数locale,你可以在这里传递LocalType.ar
根据Nader的说明进行编辑,您可以将locale:Locale(“ar”)传递给内部date_picker
pn9klfpd3#
用这个它对我有效-
添加flutter_本地化到pub.yaml
将这两行添加到主材质应用程序小部件
对我来说我的主要形象-
把它放在你的代码里,放在这个材料里的任何子部件里-
我们已经做完了一切都会好的