我在尝试更改日期选择器的颜色时遇到问题。
这就是我现在的方式,我使用构建器参数并返回主题来完成它,因为如果我尝试从我的 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 那样设置其余的内容。
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解决你的问题。
上面的代码如下所示:结果截图