Flutter CupertinoDateTimePicker分钟间隔

问题描述 投票:0回答:1

我正在尝试每隔15分钟创建一个Cupertino日期选择器。当尝试每15分钟添加一个间隔时,我的showModalSheet现在占据了整个屏幕。如何在不让Cupertino选取器占用整个屏幕的情况下增加15分钟的间隔?

我的代码:

Widget getStartingTimePicker() {

    return Container(
      height: MediaQuery.of(context).size.height * 15,
      child: Column(
        children: [
          Row(
            mainAxisAlignment: MainAxisAlignment.end,
            children: [
              CupertinoButton(
                child: Text('Done'),
                onPressed: () {
                  Navigator.pop(context);
                },
              ),
            ],
          ),
          Expanded(
            child: CupertinoDatePicker(
              mode: CupertinoDatePickerMode.time,
              minuteInterval: 15,
              initialDateTime: _currentHour.add(Duration(minutes: 15 - _currentHour.minute % 15)),
              onDateTimeChanged: (startTime) {
                setState(() {
                  // _currentHour = startTime;
                });
              },
            ),
          ),
        ],
      ),
    );

  }

结果:“添加分钟间隔结果”

flutter
1个回答
0
投票

您的问题是您设置屏幕的高度* 15

这意味着比屏幕高度大15倍:)

您应使用height: MediaQuery.of(context).size.height * 0.15

return Container(
  height: MediaQuery.of(context).size.height * 0.15,
  child: Column(
    children: [
      Row(
        mainAxisAlignment: MainAxisAlignment.end,
        children: [
          CupertinoButton(
            child: Text('Done'),
            onPressed: () {
              Navigator.pop(context);
            },
          ),
        ],
      ),
      Expanded(
        child: CupertinoDatePicker(
          mode: CupertinoDatePickerMode.time,
          minuteInterval: 15,
          initialDateTime: _currentHour.add(Duration(minutes: 15 - _currentHour.minute % 15)),
          onDateTimeChanged: (startTime) {
            setState(() {
              // _currentHour = startTime;
            });
          },
        ),
      ),
    ],
  ),
);
© www.soinside.com 2019 - 2024. All rights reserved.