flutter中的日期选择器小部件以白色显示“确定” /“取消”按钮,因此在白色背景中不可见。
_displayFromDate = await showDatePicker(
context: context,
initialDate: now,
firstDate: now,
lastDate: now.add(new Duration(days: 30)),
);
我尝试用主要的强调色(如黑色)更改页面主题。仍然不可见。按钮在那里,因为我可以点击它们,所以标题是不可见的。
[✓] Flutter (Channel master, v1.2.3-pre.67, on Mac OS X 10.13.6 17G5019, locale
en-GB)
[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
[✓] iOS toolchain - develop for iOS devices (Xcode 10.1)
[✓] Android Studio (version 3.2)
[✓] Connected device (2 available)
答案 0 :(得分:1)
您需要覆盖-buttonTheme:
theme: ThemeData(
buttonTheme: ButtonThemeData(textTheme: ButtonTextTheme.accent),
accentColor: Colors.black,
primaryColor: Colors.black)
答案 1 :(得分:0)
我一直将其调试到使用的实际小部件,因为该解决方案不适用于我。我发现的是buttonTheme绝对没有效果,而accentColor也没有效果。使用的是PrimaryColor,而不是答案中指定的颜色,而是使用colorScheme.primaryColor。 对于底部的按钮,始终使用primaryColor是ThemeData的.colorScheme部分。要使用我的主题并仅覆盖子窗口小部件的primaryColor,我使用以下内容:
final DateTime picked = await showDatePicker(
context: context,
builder: (context, child) {
return SingleChildScrollView(
child: Theme(
child: child,
data: Theme.of(context).copyWith(
colorScheme: Theme.of(context)
.colorScheme
.copyWith(primary: <Desired Color>)),
));
});
您会发现,在“浅色模式”下,原色还负责页眉部分的背景色(在该背景色中,大写字母表示所选日期)。不幸的是,这没有办法。在黑暗模式下,使用表面颜色。从Widget DatePickerHeader的文档中:
// The header should use the primary color in light themes and surface color in dark
希望这会有所帮助,从我发现的结果来看,公认的答案根本不起作用!