首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

flutter CheckedPopupMenuItem在选择项目后保持菜单打开

flutter中的CheckedPopupMenuItem是一个弹出菜单中的选项,它可以在被选中时显示一个勾选标记。当用户选择了一个项目后,菜单会自动关闭,这是默认的行为。如果你想保持菜单打开,可以通过一些技巧来实现。

一种方法是使用StatefulWidget来创建一个自定义的菜单,然后在选中项目后更新菜单的状态,使其保持打开。以下是一个示例代码:

代码语言:txt
复制
class MyMenu extends StatefulWidget {
  @override
  _MyMenuState createState() => _MyMenuState();
}

class _MyMenuState extends State<MyMenu> {
  bool _isOpen = false;
  String _selectedItem;

  void _handleMenuItemSelected(String value) {
    setState(() {
      _selectedItem = value;
      _isOpen = true; // 保持菜单打开
    });
  }

  @override
  Widget build(BuildContext context) {
    return PopupMenuButton<String>(
      onSelected: _handleMenuItemSelected,
      itemBuilder: (BuildContext context) => <PopupMenuEntry<String>>[
        CheckedPopupMenuItem<String>(
          value: 'item1',
          checked: _selectedItem == 'item1',
          child: Text('Item 1'),
        ),
        CheckedPopupMenuItem<String>(
          value: 'item2',
          checked: _selectedItem == 'item2',
          child: Text('Item 2'),
        ),
      ],
      child: ListTile(
        title: Text('Open Menu'),
      ),
    );
  }
}

在这个示例中,我们使用了一个布尔变量_isOpen来控制菜单的打开状态。当用户选择了一个项目后,我们更新了_selectedItem的值,并将_isOpen设置为true,以保持菜单打开。你可以根据自己的需求来修改这个逻辑。

这是一个基本的示例,你可以根据自己的实际情况进行修改和扩展。关于flutter的更多信息,你可以参考腾讯云的Flutter开发文档:Flutter开发文档

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

windows从右键菜单选择vscode打开当前目录项目

vscode 每次打开项目都要先打开vscode在从里面打开目录,每次这样感觉效率比较低,就想着能不能有一个我直接在当前目录下右键菜单,点一下就直接用vscode打开当前目录,总共找到3种方案:安装...先找到你电脑上 vscode 的 .exe 安装路径直接通过开始菜单里的 vscode - 打开文件位置,就能找到 vscode 的快捷方式位置,然后右键 - 属性 - 快捷方式 - 目标(T),这个就是...我的是:C:\Users\Administrator\AppData\Local\Programs\Microsoft VS Code\Code.exe然后把路径里面的斜杠前面都再加一个斜杠,因为 \ 正则里也是转义符...将文本里面的 ${你的vscode安装路径} 替换成你自己的实际路径就是上面咱多加了一个 \ 的那个 vscode 安装路径,总共有6处需要替换的4....将这个修改好的 .text 文件的文件后缀名直接改成 .reg修改好后缀,直接双击这个文件,提示什么的直接选是就可以了,没影响,然后点完之后右键菜单里就会发现多了一个 vscode 的选项,然后点击就可以直接打开当前目录了

77230
  • Flutter 专题】23 图解PopupMenu 那些事儿~

    和尚需要处理标题栏弹出对话框 PopupMenu 样式,Flutter 当然提供了一些处理方式,类似 PopupMenuEntry 等,和尚仅就最基础的使用方式进行初步的学习和整理。...CheckedPopupMenuItem 选中样式 CheckedPopupMenuItem 是一个带有复选标记的弹出菜单项。...默认高度同样是 48px,水平布局使用 ListTile 复选标记是 Icons.done 图标,显示 leading 位置;同时只有状态为选中时才会显示图标。...showMenu 指定位置 PopupMenu 默认的弹框位置都是右上角,且会挡住标题栏,如果有需要在其他位置弹框就需要借助 showMenu,主要通过 position 属性定位弹框位置。...Tips: 如果 item 个数过多也无需担心,Flutter 支持默认超过屏幕滑动效果。 ?

    1.9K41

    《深入浅出Dart》Flutter环境的安装与配置

    打开控制面板,找到“系统”然后选择“高级系统设置” ,点击“环境变量”,然后“系统变量”下找到Path,将Flutter目录下的flutter\bin添加进去。...访问VS Code官方网站下载页面,选择适合的版本进行安装。 安装Flutter插件。打开VS Code,点击左侧的Extensions按钮,搜索Flutter,点击Install。...验证安装 打开终端,运行flutter doctor命令,这个命令将会检查你的环境是否配置正确。...你可以通过"Tools > AVD Manager"菜单打开AVD Manager。...版本控制是维持Flutter项目稳定性和持续集成的重要组成部分。通过理解和使用Flutter的版本控制功能,开发者可以确保他们的项目始终与Flutter的最新进展保持同步。

    45330

    【- Flutter 桌面篇 -】 FlutterUnit mac版闪亮登场

    判断起来也会让代码变的复杂和难以阅读,独立维护也许是更好的选择。 ? ---- 3....如何运行和打包 获取依赖包: flutter pub get 运行命令: flutter run -d macos, 或直接通过AndroidStudio 选择设备运行 ?...---- 打包macos: flutter build macos,build/macos/Build/Release中可以看到应用 ? ---- 二、....左滑菜单栏 单击右侧导航栏底部的设置可以打开左侧的菜单 也可以通过左边滑来打开左侧的菜单菜单内容保持一致,功能保持一致 ? ---- 3....一切的经历将我对flutter的理解提升了一个层次。可能很多人还在观望flutter移动端的情况 。却已不知,flutter的桌面应用已在茁壮成长,特别是很多三方插件已经有macos支持。

    1.1K10

    使用 VS Code 上手体验 Flutter

    no die),学一下 VS Code,指不定以后写前端还用得着,所以综合考虑下我选择了使用 VS Code 来学习 Flutter 开发。...运行 flutter doctor: 打开 Command Palette 输入 doctor , 选择 Run Flutter Doctor : ? 我遇到个问题: ?...打开最开始创建的 helloflutter 项目,执行 flutter run 就能运行起来啦! ? 到此 VS 的 Flutter 基本开发环境算是配置好了。...(这里本来是张 Gif 图,结果裂了) 总结 这次体验只是尝试 VS Code 上安装插件,新建 Flutter 项目,以及 Run 其 Hello Flutter 工程,还算是方便快捷,但是还是感觉...后续如果有机会再多体验了再来分享,请保持关注。 文档:https://flutter.cn/docs/get-started/editor?tab=vscode

    1.3K40

    你知道吗,Flutter内置了10多种show

    下面的2个按钮根据应用程序支持的语言显示相应的语言,比如显示中文方法如下: pubspec.yaml中配置支持国际化: dependencies: flutter: sdk: flutter...flutter_localizations: sdk: flutter MaterialApp中配置当前区域: MaterialApp( title: 'Flutter Demo...isScrollControlled参数指定是否使用可拖动的可滚动的组件,如果子组件是ListView或者GridView,此参数应该设置为true,设置为true,最大高度可以占满全屏。...showMenu showMenu弹出一个Menu菜单,用法如下: showMenu( context: context, position: RelativeRect.fill,...弹出的位置屏幕的左上角,我们希望弹出的位置点击按钮的位置,因此需要计算按钮的位置,计算如下: final RenderBox button = context.findRenderObject();

    1.8K10

    Flutter 3.7更新详解

    现在 flutter build ipa 命令会校验项目的一部分设置,并且清单中告知你发布前进行更改。 开发者工具更新 本次发布中,开发工具也带来了新的特性和体验优化。...你可以 contextMenuBuilder 中返回任何你想返回的 widget,也包括平台自适应的上下文菜单。 图片 这一新特性也可以用于文本选择以外的场景。...因此,Flutter 也移除了 bitcode 的支持。 Bitcode Flutter 应用中默认是关闭的,所以这也不应该会影响太多开发者的项目。...但是,如果你曾经为你的项目手动启用过 bitcode,请尽快升级到 Xcode 14 关闭 bitcode。...你可以使用 Xcode 打开 ios/Runner.xcworkspace 找到 Enable Bitcode 设置为 No,混合开发项目需要在宿主项目中禁用。

    3.2K00

    浅谈跨平台框架Flutter的搭建与运行

    五、安装Android证书 安装好Android Studio,再次打开终端(命令行),输入flutter doctor,这时x的数量会明显减少,但可能还是会遇到1-2个,如果只有1个就说明没有安装证书...可以模拟器的 Window> Scale 菜单下设置设备比例; 运行 flutter run,启动flutter应用程序。...: 在你Flutter项目目录中通过open ios/Runner.xcworkspace打开默认的Xcode workspace。...Xcode中,选择导航面板左侧中的Runner项目Runner target设置页面中,确保General > Signing > Team下选择你的开发团队。...iOS设备首次连接到Mac时,选择信任。然后转到iOS设备上的设置菜单选择常规>设备管理并信任您的证书。 运行flutter run,启动flutter应用程序。

    3.3K20

    Flutter从配置安装到填坑指南详解

    run 附加设备上运行你的Flutter应用程序。 screenshot 从一个连接的设备截图。 stop 停止附加设备上的Flutter应用。 test 对当前项目Flutter单元测试。...(一)打开AS,点击 File --> New Flutter Project,选择Flutter application ,点击next,输入一个工程名字 注意:项目名称必须是小写,单词之间用下划线隔开...(三)首先模拟器,然后选择要运行的项目,注意了,这里有一个MainActivity和main.dart,选择main.dart,然后点击绿色的三角号图标运行(或者点击菜单栏 Run)就可以了。...Run运行示意图 我用的AS3.2,我截个图,菜单栏跟以前版本有点不同,之前的AS版本可以Build菜单找到编译选项的。...flutter源代码文件,就是你github下载下来的那个项目源代码, 比如我放在了E:\develop\flutter,我只需要把flutter这个文件夹删除就可以了。

    3.6K40

    使用 Android Studio 进行 Flutter 开发

    菜单选择 Flutter,点击 Next。 输入你的 Project name 和 Project location。 如果打算发布此应用,需要 设置公司域名⚠️。 点击 Finish。...“对于 Flutter 项目,请 不要 使用 New > Project from existing sources。 ” 菜单选择 Flutter,点击 Next。...主工具栏,可以运行和调试代码: ? IntelliJ 的主工具栏 选择目标设备 IDE 中打开 Flutter 项目时,你会在工具栏的右侧看到一组 Flutter 的特定按钮。...可以 IDE 的设置中修改快捷键:选择 Keymap 右上角的搜索框输入 flutter。右键点击你想修改的快捷键,点击 Add Keyboard Shortcut ?...如果你已经 Android Studio 中将整个项目作为 Flutter 应用打开, 则有两种方法可以打开 Android 文件, IDE 中进行编辑。

    6.3K30

    flutter 跨平台适配指南

    用户通常期望导航栏中找到应用的标题和返回按钮,以及其他与当前页面相关的操作按钮。 侧栏: 侧栏通常位于屏幕的左侧,并可以通过从屏幕左侧滑动或点击侧边栏图标来打开。...风格一致性:侧栏的设计和使用需要更多的注意,以确保其与应用的整体风格和用户体验保持一致。 何时应该选择导航栏?...应用功能简单:当应用功能较少,主要包含几个核心页面时,可以选择使用导航栏,保持界面简洁明了。 导航层次浅:当应用的导航层次较浅,不需要多层嵌套的页面结构时,导航栏是一个合适的选择。... Flutter 中,你可以使用 Drawer 组件来实现侧栏。Drawer 通常位于 Scaffold 的 drawer 属性中,用于显示应用的侧边栏菜单。...CupertinoNavigationBar:用于 iOS 应用中显示导航栏,与 iOS 设计规范保持一致。 侧栏组件: Drawer:用于显示应用的侧边栏菜单,通常在屏幕左侧打开

    26010

    你知道吗,Flutter内置了10多种show

    [1240] 注意:无特殊说明,Flutter版本及Dart版本如下:Flutter版本: 1.12.13+hotfix.5 Dart版本: 2.7.0 showDialog showDialog 用于弹出...下面的2个按钮根据应用程序支持的语言显示相应的语言,比如显示中文方法如下: pubspec.yaml中配置支持国际化: dependencies: flutter: sdk: flutter...flutter_localizations: sdk: flutter MaterialApp中配置当前区域: MaterialApp( title: 'Flutter Demo...isScrollControlled参数指定是否使用可拖动的可滚动的组件,如果子组件是ListView或者GridView,此参数应该设置为true,设置为true,最大高度可以占满全屏。...showMenu showMenu弹出一个Menu菜单,用法如下: showMenu( context: context, position: RelativeRect.fill,

    1.9K11

    flutter-第1章-配置环境

    打开AS,随便创建一个新项目。 点击右上角的SDK Manager 找到SDK Tools标签,勾选Android SDK Command-line Tools,然后点击OK安装。...找到左上角的File菜单选择Settings 选择Plugins选项,搜索flutter,安装Flutter插件,会自动帮你安装Dart插件,一切默认允许就行。安装完成重启AS。...安装好之后打开插件商店中搜索flutter,安装Flutter插件。...下载好解压,将其中bin目录添加到系统环境变量中。 选择高级系统设置。 添加刚才的bin目录。 打开cmd或者powershell或者terminal,运行flutter doctor。...然后命令行执行flutter doctor --android-licenses,一路默认yes就行。 再次运行flutter doctor就没有问题了,最后那个连接谷歌的问题没影响。

    1.7K30

    Flutter从配置安装到填坑指南详解

    run 附加设备上运行你的Flutter应用程序。 screenshot 从一个连接的设备截图。 stop 停止附加设备上的Flutter应用。 test 对当前项目Flutter单元测试。...(一)打开AS,点击 File --> New Flutter Project,选择Flutter application 然后点击next,输入一个工程名字。...(三)首先模拟器,然后选择要运行的项目,注意了,这里有一个MainActivity 和 main.dart,选择main.dart,然后点击绿色的三角号图标运行(或者点击菜单栏 Run)就可以了。...Run运行示意图 我用的AS3.2,我截个图,菜单栏跟以前版本有点不同,之前的AS版本可以Build菜单找到编译选项的。...1. flutter源代码文件,就是你github下载下来的那个项目源代码,比如我放在了E:\develop\flutter,我只需要把flutter这个文件夹删除就可以了。 1.

    8K50

    Flutter环境配置-windows

    系统变量的path中增加:%JAVA_HOME%\bin %JAVA_HOME%\jre\bin 4,安装android sudio 一路安装,安装完以后,打开点击右下角的第一个菜单configration...android studo的配置到这里就结束了 5,配置flutter 下载完flutter解压到任意目录 系统变量的path中增加 【flutter所在目录】/bin, 添加系统变量: FLUTTER_STORAGE_BASE_URL...Doctor found issues in 1 category. 8,环境预热: 8.1,vscode ,ctrl+shift+p进入命令面板,输入flutter选择flutter new project...,回车输入项目名称,回车,,项目创建完毕 8.2,打开andorid stuido,点击configration->avd manager,打开 启动创建好的虚拟设备 8.3,切回vscode,按F5...运行,此时可以看到已经启动的虚拟设备,直接等项目跑起来,预热完成,在此之后,开发flutter就不需要再打开andorid sudio了 到此,flutter的开发环境完全搭建完毕

    92520
    领券