showDatePicker 'No MaterialLocalizations found.' 就在我使用语言环境时

showDatePicker 'No MaterialLocalizations found.' Just When I Use Locale

我正在使用 showDatePicker,它工作正常,它位于 MaterialApp 小部件之外的脚手架内,但就在我给它设置语言环境时 属性 它显示此错误 No MaterialLocalizations found. 我该如何解决它。

onPressed: () async {
                              String timeMsg = 'اختر التوقيت';
                              DateTime? _selectDate = await showDatePicker(
                                context: context,
                                locale: Locale('ar'),
                                initialDate: from
                                firstDate: first,
                                lastDate: new DateTime.now(),
                              );
}

如果我说错了请纠正我。你的意思是你要在脚手架中调用 showDatePicker 而这个脚手架不在 MaterialApp 中吗?

一般来说,MaterialApp 和 CupertinoApp 应该负责管理语言环境,查看 this page 了解更多详情。 Context 用于定位小部件树中的每个小部件。在您的 DatePickerDialog 中,如果找不到任何祖先小部件来为给定的上下文提供 MaterialLocalizations,它将始终引发此错误。

Afaik,将它放在 MaterialApp 中是最好的选择。您可以将它放在一个新的 MaterialApp 中,或者只是将您的脚手架移动到现有的 MaterialApp 中。第二个总是首选,因为当你还在学习如何使用 flutter 时,你不会喜欢与多个导航器打交道。