#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