Не изменяет значок после переключения темы

#flutter #animation #button #icons #themes

#трепетать #Анимация #кнопка #Значки #темы

Вопрос:

Существует пакет animated_theme_switcher и назначен код для изменения значка после переключения, но он не меняется .. какой код необходим? Помогите, пожалуйста .. Я буду благодарен своему коду:

 Container(  margin: const EdgeInsets.only(  ),  child: ThemeSwitcher(  clipper: const ThemeSwitcherCircleClipper(),  builder: (context)  {  return IconButton(  onPressed: () async {  var themeName =  ThemeModelInheritedNotifier  .of(context)  .theme  .brightness ==  Brightness.light  ? 'dark'  : 'light';  var service = await ThemeService.instance  ..save(themeName);  var theme = service.getByName(themeName);  ThemeSwitcher.of(context).changeTheme(theme: theme);  },  icon: Icon(ThemeModelInheritedNotifier  .of(context)  .theme == Brightness.light ? Icons.light_mode_outlined : Icons.dark_mode_outlined),  );  },  ),  ),  

Ответ №1:

Оберните экран, на котором вы хотите, чтобы они переключались с помощью виджета ThemeSwitchingArea, как показано в следующем примере:

 ThemeSwitchingArea(  child: Builder(builder: (context)  {  return IconButton(  onPressed: () async {  var themeName =  ThemeModelInheritedNotifier  .of(context)  .theme  .brightness ==  Brightness.light  ? 'dark'  : 'light';  var service = await ThemeService.instance  ..save(themeName);  var theme = service.getByName(themeName);  ThemeSwitcher.of(context).changeTheme(theme: theme);  },  icon: Icon(ThemeModelInheritedNotifier  .of(context)  .theme == Brightness.light ? Icons.light_mode_outlined : Icons.dark_mode_outlined),  );  },);  

Комментарии:

1. Я не совсем понял, где( … Выше я добавил код с того места, где он начинается

2. понял .из(контекста) .тема .яркость == Яркость. свет ? …

3. пожалуйста, полностью изучите документы animated_theme_switcher