首页 > 解决方案 > Flutter GetX 更改主题需要热重载?

问题描述

大家好,我正在使用颤振的 GetX 包来更改我的应用程序 ThemeMode。它工作正常,但问题是它需要热重新加载来更改 ThemeMode 这是我的代码

changeThemeMode() {darkModeSwitch.value == true? Get.changeTheme(Apptheme.dark): Get.changeTheme(Apptheme.light);}

标签: flutterdart

解决方案


不,你不需要它。

确保您使用的是哪个GetMaterialApp而不是MaterialApp. 这是我得到它的方法:

 class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return GetMaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

我创建了一个changeTheme方法来做到这一点

 void changeTheme() {
    Get.changeTheme(Get.isDarkMode ? ThemeData.light() : ThemeData.dark());
  }

我在页面中这样称呼他:

floatingActionButton: FloatingActionButton(
  onPressed: changeTheme,
  child: Icon(Icons.add),
), 

这对我有用。


推荐阅读