在Flutter中,有没有办法改变showDatePicker的输入颜色

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

创建 DatePicker 时,它使用我整个项目的主题。在我的项目的其余部分中,输入的文本颜色为白色。使用 DatePicker 时,我可以选择一个日期(废话),也可以手动输入日期。这是手动输入日期的输入,我想专门为此输入更改输入的颜色(即,不弄乱整个应用程序的主题)。我的 DatePickerTheme 是否缺少某个属性?

这是我的代码:

final inputDecorationTheme = InputDecorationTheme(
  contentPadding: const EdgeInsets.symmetric(horizontal: 22, vertical: 14),
  filled: true,
  fillColor: Colors.white.withOpacity(0.1),
  hintStyle: textTheme.labelMedium!.apply(color: Palette.darkGrey),
  floatingLabelBehavior: FloatingLabelBehavior.never,
  labelStyle: const TextStyle(color: Colors.white),
  focusedBorder: OutlineInputBorder(
      borderRadius: BorderRadius.circular(8),
      borderSide: const BorderSide(color: Palette.border, width: 1)),
  enabledBorder: OutlineInputBorder(
      borderRadius: BorderRadius.circular(8),
      borderSide: const BorderSide(color: Palette.border, width: 1)),
  border: OutlineInputBorder(
      borderRadius: BorderRadius.circular(8),
      borderSide: const BorderSide(color: Palette.border, width: 1)),
  errorBorder: OutlineInputBorder(
      borderRadius: BorderRadius.circular(8),
      borderSide: const BorderSide(color: Palette.error, width: 1)),
);

final datePickerTheme = DatePickerThemeData(
  cancelButtonStyle: TextButton.styleFrom(
    foregroundColor: Colors.black, // Color for text on buttons
  ),
  confirmButtonStyle: TextButton.styleFrom(
    foregroundColor: Palette.primary, // Color for text on buttons
  ),
  inputDecorationTheme: inputDecorationTheme,
);

我尝试更改输入装饰主题(因为我怀疑这就是它所在的位置?)

我是一名大三学生,所以我可能还没有在这里尝试过很多(任何)抽象的想法。

flutter dart datepicker
1个回答
0
投票

你可以试试这个吗!

showDatePicker(
  context: context,
  initialDate: DateTime.now(),
  firstDate: DateTime.now().subtract(const Duration(days: 365)),
  lastDate: DateTime.now().add(const Duration(days: 365)),
  builder: (BuildContext context, Widget? child) {
    return Theme(
      data: Theme.of(context).copyWith(
        colorScheme: const ColorScheme.light(onPrimary: kWhite, onBackground: kWhite),
        datePickerTheme: const DatePickerThemeData(
          headerBackgroundColor: kPrimary,
          backgroundColor: kWhite,
          headerForegroundColor: kWhite,
          surfaceTintColor: kWhite,
        ),
      ),
      child: child!,
    );
  },
);
© www.soinside.com 2019 - 2024. All rights reserved.