Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 即使调用setState,抽头后颤振开关也不会改变_Android_Flutter - Fatal编程技术网

Android 即使调用setState,抽头后颤振开关也不会改变

Android 即使调用setState,抽头后颤振开关也不会改变,android,flutter,Android,Flutter,我试图模仿颤振画廊应用程序选项的背景。我有它的工作,除了选择设置黑暗的主题是改变主题只有一次,然后陷入黑暗模式那里 开关状态总是显示为false 源代码可在以下位置获得: 不确定提供任何代码片段是否会有帮助,因为问题似乎不清楚,但下面是构建小部件的部分 class _ThemeItem extends StatelessWidget { const _ThemeItem(this.options, this.onOptionsChanged); final Options option

我试图模仿颤振画廊应用程序选项的背景。我有它的工作,除了选择设置黑暗的主题是改变主题只有一次,然后陷入黑暗模式那里

开关状态总是显示为false

源代码可在以下位置获得:

不确定提供任何代码片段是否会有帮助,因为问题似乎不清楚,但下面是构建小部件的部分

class _ThemeItem extends StatelessWidget {
  const _ThemeItem(this.options, this.onOptionsChanged);

  final Options options;
  final ValueChanged<Options> onOptionsChanged;

  @override
  Widget build(BuildContext context) {
    String title = 'Dark Theme';

    return _BooleanItem(
      title, options.theme == kDarkGalleryTheme, (bool value) => 
change(value), switchKey: const Key('dark_theme'),
    );
  }
class\u ThemeItem扩展了无状态小部件{
const\u ThemeItem(this.options,this.onoptions已更改);
最后选择;
更改选项时的最终值已更改;
@凌驾
小部件构建(构建上下文){
字符串标题='暗主题';
返回布尔项(
title,options.theme==kDarkGalleryTheme,(bool值)=>
更改(值),开关键:常量键('dark_theme'),
);
}

我想你应该使用StatefulWidget而不是无状态widget,因为你将要更改交换机的状态。我确实考虑过这一点,但是gallery示例也使用无状态widget。因此,这里似乎还有其他问题。你能发送完整的代码吗,我在你发布的代码中看不到switch widgetgithub repo中实际上有ull代码。我最终能够解决它,但仍然不太了解问题的根本原因。我发现,当我更改路由以加载主页而不是spash屏幕时,行为按预期工作。然后,我更改了路由代码,它成功地工作了。如何我一直都不明白为什么之前它不起作用。我想你应该使用StatefulWidget而不是无状态widget,因为你要更改开关的状态。我确实考虑过这个问题,但是gallery示例也使用无状态widget。所以这里似乎还有其他问题。你能发送完整的代码吗,我在你发布的代码中看不到switch小部件。完整的代码实际上可以在github repo中找到。我最终能够解决它,但仍然不太了解问题的根本原因。我发现,当我更改路由以加载主页而不是spash屏幕时,行为按预期工作。然后我更改了路由代码,它成功地工作了。但是我仍然不明白为什么它没有工作。