如何在Flutter中更改colorPicker中所选日期的颜色?

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

我在尝试更改日期选择器的颜色时遇到问题。

这就是我现在的方式,我使用构建器参数并返回主题来完成它,因为如果我尝试从我的 appTheme 更改 datePickerTheme ,则很难将其保留为我想要的样子。

final DateTime? pickedDate =
    await showDatePicker(
    context: context,
    initialDate: DateTime.now(),
    firstDate: DateTime(2004),
    lastDate: DateTime(2101),
    builder: (context, child) {
      return Theme(
        data: ThemeData().copyWith(
          colorScheme: const ColorScheme(
            brightness: Brightness.light,
            primary: Color.fromARGB(255, 212, 89, 83),
            onPrimary: Colors.white,
            secondary: Color.fromARGB(255, 0, 28, 49),
            onSecondary: Colors.white,
            error: Colors.red,
            onError: Colors.white,
            surface: Color.fromARGB(255, 0, 28, 49),
            onSurface: Colors.white,
          ), 
        ),
        child: child!
      );
    },
  );

从视觉上看,它是这样的:

日期选择器

日期选择器问题

我的问题是,正如你在照片中看到的,用键盘手动更改的日期文本看起来是黑色的,我希望它看起来是白色的,我不知道如何更改它,这样会更好使用 datePickerTheme 但我不知道如何将其保留为与当前相同的参数和主题,我无法更改该文本。

我尝试使用 datePickerTheme,但我无法像现在使用 Theme 那样设置其余的内容。

flutter datepicker android-datepicker
1个回答
0
投票
final DateTime? pickedDate = await showDatePicker(
          context: context,
          initialDate: DateTime.now(),
          firstDate: DateTime(2004),
          lastDate: DateTime(2101),
          builder: (context, child) {
            return Theme(
                data: ThemeData().copyWith(
                  colorScheme: const ColorScheme(
                    brightness: Brightness.light,
                    primary: Color.fromARGB(255, 212, 89, 83),
                    onPrimary: Colors.white,
                    secondary: Color.fromARGB(255, 0, 28, 49),
                    onSecondary: Colors.white,
                    error: Colors.red,
                    onError: Colors.white,
                    surface: Color.fromARGB(255, 0, 28, 49),
                    onSurface: Colors.white,
                  ),
                  textTheme: ThemeData.light().textTheme.copyWith(
                        bodyLarge: const TextStyle(
                          color: Colors.white,
                        ),
                      ),
                ),
                child: child!);
          },
        );

我想你会用textTheme解决你的问题。

上面的代码如下所示:结果截图

© www.soinside.com 2019 - 2024. All rights reserved.