Изменение темы showDatePicker не работает после обновления? - PullRequest
1 голос
/ 04 августа 2020

Я устанавливаю тему showDatePicker с помощью функции построителя:

showDatePicker(
  initialDate: initialDate,
  firstDate: initialDate,
  lastDate: maxDate,
  context: context,
  builder:
      (BuildContext context, Widget child) {
    return Theme(
        data: Theme.of(context).copyWith(
          primaryColor: Colors.orange,
          accentColor: Colors.orange,
          buttonTheme: ButtonThemeData(
            buttonColor: Colors.orange,
            splashColor: Colors.orange,
            colorScheme:
                ColorScheme.fromSwatch(
                    accentColor:
                        Colors.orange),
          ),
        ),
        child: child);
  },
);

Раньше это работало в более старой версии flutter (v1.12.13 + hotfix.8), но в текущей версии (v1.17.5) больше не работает.

Я также пробовал обернуть весь вызов функции пользовательской темой

Theme(
    data: ThemeData(primarySwatch: Colors.orange),
    child: MaterialButton(onTap: () {time = await ShowDatePicker (...)}

Но это также не меняет тему выбора даты .

Это ошибка или есть другой способ изменить тему сейчас?

Каким должен быть вызов для установки настраиваемой темы для showDatePicker?

1 Ответ

1 голос
/ 04 августа 2020

Установите colorScheme и buttonTheme для ThemeData внутри builder из showDatePicker:

showDatePicker(
        initialDate: initialDate,
        firstDate: initialDate,
        lastDate: maxDate,
        context: context,
        builder: (BuildContext context, Widget child) {
          return Theme(
            data: ThemeData.light().copyWith(
              colorScheme:
              ColorScheme.light(primary: Colors.redAccent),
              buttonTheme: ButtonThemeData(
                  textTheme: ButtonTextTheme.primary),
            ),
            child: child,
          );
        });

Результат:

img

...