Flutter如何在appBar中的Icon添加链接,指向main文件中的function

新手上路,请多包涵

我正在尝试在appBar上构建一个带状态的“闪光灯按钮”,点击此按钮会弹出popupmenu,用户可以在弹出菜单中点击“开启/关闭/常亮”三种状态,appBar上的按钮会根据用户选择的状态改变样式。
目前此功能已在Flutter框架下的appBar.dart文件成功实现。代码如下:

        int selectedValue = 1; 

        PopupMenuButton(
              initialValue: selectedValue,
              onSelected: (int value) => setState(() {
                selectedValue = value;
              }),
              child: Icon(
                  selectedValue == 1
                      ? Icons.flash_off
                      : selectedValue == 2
                          ? Icons.flash_auto
                          : Icons.flash_on,
                  color: Colors.white),

              //popupmenu content
              itemBuilder: (context) => const [
                PopupMenuItem(
                  child: Icon(Icons.flash_on, color: Colors.black),
                  value: 0,
                ),
                PopupMenuItem(
                  child: Icon(Icons.flash_off, color: Colors.black),
                  value: 1,
                ),
                PopupMenuItem(
                  child: Icon(Icons.flash_auto, color: Colors.black),
                  value: 2,
              
                ),
              ],
            ),

但同时,希望设备的闪光灯工作状态能够根据用户的选项而工作,此方法我写在main.dart里。

  flashStatus(flashMode) async {
    setState(() {
      if (flashMode == 'auto') {
        _flashMode = FlashMode.auto;
      } else if (flashMode == 'off') {
        _flashMode = FlashMode.off;
      } else {
        _flashMode = FlashMode.torch;
      }
    });
    print(flashMode);
    await cameraController.setFlashMode(_flashMode);
  }

现在想请教各位大佬,如何能够把main文件的flashStatus方法(控制设备闪光灯工作状态)与appBar文件的icon链接,使得用户在popupmenu中选择的时候,不仅appBar的图标会变,实际设备的闪光灯也能对应工作?
先在这里谢谢各位大神的时候和帮助。

阅读 1.9k
1 个回答
新手上路,请多包涵

可以尝试使用Provider来进行跨组件状态管理。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题