启用时切换

时间:2019-07-31 12:00:15

标签: flutter dart

我的抽屉中有一个简单的开关:

SwitchListTile(
  title: Text("Dark Theme"),
  value: darkThemeEnabled,
  onChanged: (darkThemeEnabled) {
               if (darkThemeEnabled) {
                  _themeChanger.setTheme(ThemeData.dark());
                } else {
                  _themeChanger.setTheme(AppTheme.light);
                }
)

启用“开关”后,它会变为我的黑暗主题,但是如何将其改回原来的主题?如何在禁用功能上运行? 我知道它一定很简单,但我目前仍处于困境。

2 个答案:

答案 0 :(得分:0)

SwitchListTile(
  title: Text("Dark Theme"),
  value: darkThemeEnabled,
  onChanged: (){
    if(darkThemeEnabled)
      doSometing();
  }
)

答案 1 :(得分:0)

SwitchListTile小部件本身不管理状态。您可以创建一个StatefulWidget并调用setState来更新UI。

class OnOff extends StatefulWidget {
  @override
  _OnOffState createState() => _OnOffState();
}

class _OnOffState extends State<OnOff> {
  bool flag = false;
  @override
  Widget build(BuildContext context) {
    return SwitchListTile(
      title: const Text('Change Me'),
      value: flag,
      onChanged: (bool value) {
        setState(() {
          flag = value;
        });
      },
    );
  }
}