创建 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,
);
我尝试更改输入装饰主题(因为我怀疑这就是它所在的位置?)
我是一名大三学生,所以我可能还没有在这里尝试过很多(任何)抽象的想法。
你可以试试这个吗!
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!,
);
},
);