如何修改date_picker.dart以删除“确定”和“取消”按钮

时间:2018-08-28 11:29:48

标签: datepicker dart flutter

我正在构建一个移动应用程序,允许用户从日期选择器中选择日期, 当打开选择器屏幕时,它会从按钮溢出 我搜索了问题,并在这里找到了相同的问题 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;
  });
}}

2 个答案:

答案 0 :(得分:0)

在Android Studio中,选择showDatePicker,然后按 CTRL + F

select code

文件date_picker.dart将在新标签页中打开。文件中要查找的ButtonBar位于文件的第960行附近。现在,当您尝试对其进行编辑时,将弹出警告:

edit warning

只需按OK并根据需要进行编辑。请注意,运行flutter upgrade时更改可能会被覆盖。最好将整个文件复制到您的项目中,以创建您自己的日期选择器版本。

答案 1 :(得分:0)

不要。

  • 如果其他人试图在自己的计算机上运行此代码,则直接编辑文件将会中断(即,无法进行自定义)。
  • 如果您更新Flutter,将破坏自己的代码。

研究覆盖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(),
            ),
          );
        });