3

我在我的应用程序中使用 CupertinoDatePicker。

Container(
    height: 200,
    padding: const EdgeInsets.all(16.0),
    child: CupertinoDatePicker(
        mode: CupertinoDatePickerMode.date,
        minimumYear: DateTime.now().year,
        onDateTimeChanged: (DateTime value) {
        print(value);
        },
    )

该应用程序正在使用 MaterialApp (MaterialTheme)。有没有办法改变 CupertinoDatePicker 的背景颜色?

这是我尝试过的(将 CupertinoDatePicker 包裹在 CupertinoTheme 周围并将颜色设置为黑色)但它不起作用。

Container(
    height: 200,
    padding: const EdgeInsets.all(16.0),
    child: CupertinoTheme(
        data: CupertinoThemeData(
            primaryColor: Colors.black),
        child: CupertinoDatePicker(
        mode: CupertinoDatePickerMode.date,
        minimumYear: DateTime.now().year,
        onDateTimeChanged: (DateTime value) {
            print(value);
        },
        ),
    ),
)
4

3 回答 3

2

在撰写本文时,Flutter 已在 Master 通道上的 CupertinoDatePicker 中添加了 backgroundColor 属性。See https://github.com/flutter/flutter/commit/19cdb21cb67acf51fb9b4e4e7a367d0bcd82fc7b#diff-54c54e67345e65bac63291794f109fd1 It's supported in following versions: master (#39056) v1.10.14 v1.10.13 v1.10.12 v1.10.11 v1.10.10 v1.10.9 v1 .10.8 v1.10.7 v1.10.6 v1.10.5 v1.10.4 v1.10.3 v1.10.2 v1.10.1 v1.10.0 v1.9.7 v1.9.6

您可以按如下方式设置背景颜色:

CupertinoTimerPicker(
     backgroundColor: Colors.black,
     initialTimerDuration: timer,
     mode: CupertinoTimerPickerMode.hms,
     onTimerDurationChanged: (Duration newTimer) {
                                       setState(() {
                                       timer = newTimer;
                     });
于 2019-09-16T23:32:19.403 回答
2

在撰写本文时,这是不可能的,源代码中有一条注释date_picker.dart如下:

// 考虑在未来设置主题的默认背景颜色。常量颜色 _kBackgroundColor = CupertinoColors.white;

于 2019-06-19T18:14:26.327 回答
0

如果您为 Flutter 应用程序选择深色主题,则 CupertinoDatePicker 的文本颜色将变为白色

于 2020-01-16T03:20:22.073 回答