我正在构建一个移动应用程序,允许用户从日期选择器中选择日期, 当打开选择器屏幕时,它会从按钮溢出 我搜索了问题,并在这里找到了相同的问题 https://github.com/flutter/flutter/issues/19744 解决方案中提到他修改了文件“ date_picker.dart” 我如何找到此文件以及如何应用这些更改 我使用的代码:
Route::post('user/{$stellentyp}', 'StartController@getValues')->name('user.{$stellentyp}');
在小部件内部
DateTime TodayDate = new DateTime.now();Future<Null> selectDate(BuildContext context) async{
final DateTime Picker = await showDatePicker(
context: context,
initialDate: TodayDate,
firstDate: TodayDate,
lastDate: new DateTime(2021),
);
if (Picker != null && Picker != TodayDate){
print('${TodayDate.toString()} تاريخ الرحلة : ');
setState(() {
TodayDate = Picker;
});
}}
答案 0 :(得分:0)
在Android Studio中,选择showDatePicker
,然后按 CTRL + F
文件date_picker.dart
将在新标签页中打开。文件中要查找的ButtonBar
位于文件的第960行附近。现在,当您尝试对其进行编辑时,将弹出警告:
只需按OK并根据需要进行编辑。请注意,运行flutter upgrade
时更改可能会被覆盖。最好将整个文件复制到您的项目中,以创建您自己的日期选择器版本。
答案 1 :(得分:0)
不要。
研究覆盖showDatePicker build()方法。复制它的内容并添加您的自定义将比实际编辑文件更可取。虽然-即使这似乎仍然很粗略。考虑一下Flutter决定更改showDatePicker.build()实现的一年。除非您承诺在每次Flutter更新时都维护此代码,否则可能会很不幸。
理想的解决方案是请求附加功能,或者自己完成功能并尝试使其集成。显然,如果您需要尽快使用此功能,那对您没有太大帮助。
编辑:似乎存在一种解决方法,涉及使用SingleChildScrollView避免溢出-请参见https://github.com/flutter/flutter/issues/19744#issuecomment-493873347
DateTime dateTime = await showDatePicker(
context: context,
initialDate: DateTime(2000),
firstDate: DateTime(1950),
lastDate: DateTime(DateTime.now().year + 1),
builder: (context, child) {
return SingleChildScrollView(
child: Theme(
child: child,
data: ThemeData.light(),
),
);
});