Flutter,点击图标后,显示下拉条目选框

2024-03-15 13:12

本文主要是介绍Flutter,点击图标后,显示下拉条目选框,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这里给出两种方式,一种是点击时没有动画效果的Icon+GestureDetector,另一种是点击时带动画的Material Widget自带的IconButton。
第一种:

MouseRegion( // 用于鼠标移动到区域,出现小手cursor: SystemMouseCursors.click,child: Tooltip(message: "页面布局",preferBelow: false,child: GestureDetector(onTap: () {showMenu<String>(context: context,position: const RelativeRect.fromLTRB(420, 350, 400, 0), // 下拉菜单位置items: <PopupMenuEntry<String>>[const PopupMenuItem<String>(value: '单页面',child: Text('单页面'),),const PopupMenuItem<String>(value: '两页面', child: Text('两页面'),),const PopupMenuItem<String>(value: '四页面',child: Text('四页面'),),const PopupMenuItem<String>(value: '六页面',child: Text('六页面'),),const PopupMenuItem<String>(value: '八页面',child: Text('八页面'),),],).then((String? value) {if (value != null) {print("点击了按钮");} else {print("点击了:$value");}});},child: Container(width: 25,height: 20,child: const Icon(Icons.view_agenda_outlined,size: 25,),),),),
),

第二种:

             IconButton(onPressed: (){showMenu<String>(context: context,position: const RelativeRect.fromLTRB(420, 350, 400, 0), // 下拉菜单位置 .shift(const Offset(0, 50))items: <PopupMenuEntry<String>>[const PopupMenuItem<String>(value: '单页面',child: Text('单页面'),),const PopupMenuItem<String>(value: '两页面',child: Text('两页面'),),const PopupMenuItem<String>(value: '四页面',child: Text('四页面'),),const PopupMenuItem<String>(value: '六页面',child: Text('六页面'),),const PopupMenuItem<String>(value: '八页面',child: Text('八页面'),),],).then((String? value) {if (value != null) {print("点击了按钮");} else {print("点击了:$value");}});}, icon: const Icon(Icons.view_agenda_outlined),tooltip: "页面布局",color: Colors.black,),

这篇关于Flutter,点击图标后,显示下拉条目选框的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/812079

相关文章

macOS无效Launchpad图标轻松删除的4 种实用方法

《macOS无效Launchpad图标轻松删除的4种实用方法》mac中不在appstore上下载的应用经常在删除后它的图标还残留在launchpad中,并且长按图标也不会出现删除符号,下面解决这个问... 在 MACOS 上,Launchpad(也就是「启动台」)是一个便捷的 App 启动工具。但有时候,应

Flutter打包APK的几种方式小结

《Flutter打包APK的几种方式小结》Flutter打包不同于RN,Flutter可以在AndroidStudio里编写Flutter代码并最终打包为APK,本篇主要阐述涉及到的几种打包方式,通... 目录前言1. android原生打包APK方式2. Flutter通过原生工程打包方式3. Futte

Linux虚拟机不显示IP地址的解决方法(亲测有效)

《Linux虚拟机不显示IP地址的解决方法(亲测有效)》本文主要介绍了通过VMware新装的Linux系统没有IP地址的解决方法,主要步骤包括:关闭虚拟机、打开VM虚拟网络编辑器、还原VMnet8或修... 目录前言步骤0.问题情况1.关闭虚拟机2.China编程打开VM虚拟网络编辑器3.1 方法一:点击还原VM

CSS模拟 html 的 title 属性(鼠标悬浮显示提示文字效果)

《CSS模拟html的title属性(鼠标悬浮显示提示文字效果)》:本文主要介绍了如何使用CSS模拟HTML的title属性,通过鼠标悬浮显示提示文字效果,通过设置`.tipBox`和`.tipBox.tipContent`的样式,实现了提示内容的隐藏和显示,详细内容请阅读本文,希望能对你有所帮助... 效

Flutter监听当前页面可见与隐藏状态的代码详解

《Flutter监听当前页面可见与隐藏状态的代码详解》文章介绍了如何在Flutter中使用路由观察者来监听应用进入前台或后台状态以及页面的显示和隐藏,并通过代码示例讲解的非常详细,需要的朋友可以参考下... flutter 可以监听 app 进入前台还是后台状态,也可以监听当http://www.cppcn

Python使用PIL库将PNG图片转换为ICO图标的示例代码

《Python使用PIL库将PNG图片转换为ICO图标的示例代码》在软件开发和网站设计中,ICO图标是一种常用的图像格式,特别适用于应用程序图标、网页收藏夹图标等场景,本文将介绍如何使用Python的... 目录引言准备工作代码解析实践操作结果展示结语引言在软件开发和网站设计中,ICO图标是一种常用的图像

四种Flutter子页面向父组件传递数据的方法介绍

《四种Flutter子页面向父组件传递数据的方法介绍》在Flutter中,如果父组件需要调用子组件的方法,可以通过常用的四种方式实现,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录方法 1:使用 GlobalKey 和 State 调用子组件方法方法 2:通过回调函数(Callb

如何设置vim永久显示行号

《如何设置vim永久显示行号》在Linux环境下,vim默认不显示行号,这在程序编译出错时定位错误语句非常不便,通过修改vim配置文件vimrc,可以在每次打开vim时永久显示行号... 目录设置vim永久显示行号1.临时显示行号2.永www.chinasem.cn久显示行号总结设置vim永久显示行号在li

macOS怎么轻松更换App图标? Mac电脑图标更换指南

《macOS怎么轻松更换App图标?Mac电脑图标更换指南》想要给你的Mac电脑按照自己的喜好来更换App图标?其实非常简单,只需要两步就能搞定,下面我来详细讲解一下... 虽然 MACOS 的个性化定制选项已经「缩水」,不如早期版本那么丰富,www.chinasem.cn但我们仍然可以按照自己的喜好来更换

电脑显示hdmi无信号怎么办? 电脑显示器无信号的终极解决指南

《电脑显示hdmi无信号怎么办?电脑显示器无信号的终极解决指南》HDMI无信号的问题却让人头疼不已,遇到这种情况该怎么办?针对这种情况,我们可以采取一系列步骤来逐一排查并解决问题,以下是详细的方法... 无论你是试图为笔记本电脑设置多个显示器还是使用外部显示器,都可能会弹出“无HDMI信号”错误。此消息可能