颤振:showDatePicker更改颜色

时间:2020-06-08 13:00:10

标签: flutter colors

我正在尝试更改日期选择器的颜色,但其中仍然有蓝色。我做了很多尝试,但是找不到能改变蓝色的代码(见下文)。

文本:“输入日期”,下划线以及“取消和确定”按钮应全部为蓝绿色。

showDatePicker

到目前为止,这是我的代码。感谢您的支持!

  TextEditingController _dateController = new TextEditingController();
  DateTime selectedDate = DateTime.now();
  var myFormat = DateFormat('d-MM-yyyy');
  Future<void> _selectDate(BuildContext context) async {
    final DateTime picked = await showDatePicker(
        context: context,
        initialDate: selectedDate,
        firstDate: DateTime(1930),
        lastDate: DateTime(2022),
        builder: (BuildContext context, Widget child) {
          return Theme(
            data: ThemeData.light().copyWith(
              colorScheme: ColorScheme.fromSwatch(
                primarySwatch: Colors.teal,
                primaryColorDark: Colors.teal,
                accentColor: Colors.teal,
              ),
            dialogBackgroundColor:Colors.white,
          ),
          child: child,
       );
    },
    );
    if (picked != null && picked != selectedDate)
      setState(() {
        selectedDate = picked;
      });
  }

2 个答案:

答案 0 :(得分:1)

这可能是反复试验的结果。我确实希望每个小部件都使用哪些主题属性。

例如,我必须对DropDownButton使用ThemeData.canvasColor。似乎colorScheme属性都没有影响该小部件,因此ThemeData中的某些内容可能会对您有所帮助(并且有很多属性)

也许这些?看来日期应该是TextField。

textSelectionColor→颜色 文本字段(例如TextField)中文本选择的颜色。 最后 textSelectionHandleColor→颜色 用于调整当前所选文本部分的手柄的颜色。 最终

答案 1 :(得分:0)

改为尝试

TextEditingController _dateController = new TextEditingController();
DateTime selectedDate = DateTime.now();
var myFormat = DateFormat('d-MM-yyyy');
Future<void> _selectDate(BuildContext context) async {
final DateTime picked = await showDatePicker(
    context: context,
    initialDate: selectedDate,
    firstDate: DateTime(1930),
    lastDate: DateTime(2022),
    builder: (BuildContext context, Widget child) {
      return Theme(
        data: ThemeData.light().copyWith(
          colorScheme: ColorScheme.fromSwatch(
            primarySwatch: Colors.teal,
            primaryColorDark: Colors.teal,
            accentColor: Colors.teal,
          ),
        dialogBackgroundColor:Colors.white,
      ),
      child: child,
   );
},
);
if (picked != null && picked != selectedDate)
  setState(() {
    selectedDate = picked;
  });
}