flutter - Flutter GetX 更改主题需要热重载?
问题描述
大家好,我正在使用颤振的 GetX 包来更改我的应用程序 ThemeMode。它工作正常,但问题是它需要热重新加载来更改 ThemeMode 这是我的代码
changeThemeMode() {darkModeSwitch.value == true? Get.changeTheme(Apptheme.dark): Get.changeTheme(Apptheme.light);}
解决方案
不,你不需要它。
确保您使用的是哪个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),
),
这对我有用。
推荐阅读
- c++ - 代码和宽松原子的编译器/硬件优化
- python - 具有 Python 协议的域的正则表达式
- vba - 如何在 Excel VBA 中为字符串添加空格
- python - Python检查参数是某个对象的列表
- javascript - 如果使用JS在输入框中搜索没有返回任何结果,如何显示消息?
- javascript - 一个提交按钮 - 两个半径形式。如何在烧瓶中收集提交的值
- javascript - 在vue js中将输入文本添加到复选框的值
- gdb - GDB错误gdb:加载共享库时出错:libffi.so.7:无法打开共享对象文件:没有这样的文件或目录
- python - Python:将类中的字典(以类方法作为值)移动到另一个文件
- c++ - 是否可以在 C++ 中的单个操作中同时获得除法的模数和商?