我正在使用 showDatePicker 并且它作業正常,它在 MaterialApp 小部件外的腳手架內,但就在我給它 locale 屬性時,它顯示了這個錯誤No MaterialLocalizations found.,我該如何解決它。
onPressed: () async {
String timeMsg = '???? ???????';
DateTime? _selectDate = await showDatePicker(
context: context,
locale: Locale('ar'),
initialDate: from
firstDate: first,
lastDate: new DateTime.now(),
);
}
uj5u.com熱心網友回復:
如果我弄錯了,請糾正我。你的意思是你要在腳手架中呼叫 showDatePicker 而這個腳手架不在 MaterialApp 內?
一般來說,MaterialApp 和 CupertinoApp 應該負責管理語言環境,查看此頁面了解更多詳細資訊。背景關系用于定位小部件樹中的每個小部件。在您的 DatePickerDialog 中,如果找不到任何祖先小部件來為給定的背景關系提供 MaterialLocalizations,它將始終引發此錯誤。
Afaik,將它放在 MaterialApp 中是最好的選擇。您可以將其放置在新的 MaterialApp 中,也可以簡單地將您的腳手架移動到現有的 MaterialApp 中。第二個總是首選,因為當您仍在學習如何使用 flutter 時,您不會喜歡與多個導航器打交道。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/357917.html
