当前位置: 首页 > news >正文

第三百一十回

我们在上一章回中介绍了"再谈ListView中的分隔线",本章回中将介绍showMenu的用法.闲话休提,让我们一起Talk Flutter吧。

在这里插入图片描述

1. 概念介绍

我们在第一百六十三回中介绍了showMenu相关的内容,它主要用来显示移动PopupMenu在页面中的位置。如果大家忘记的话,可以点击这里查看详细的内容。本章回中
将在此基础上补充一些新的使用方法。

2. 基本用法

我们可以使用showMenu方法来移动PopupMenu,移动时主要使用了该方法提供的positon参数,这个内容我们在前面章回中介绍过,这里不再展开详细讨论。我们先看
一下showMenu方法的函数原型,详细如下:

Future<T?> showMenu<T>({required BuildContext context,required RelativeRect position,required List<PopupMenuEntry<T>> items,T? initialValue,double? elevation,Color? shadowColor,Color? surfaceTintColor,String? semanticLabel,ShapeBorder? shape,Color? color,bool useRootNavigator = false,BoxConstraints? constraints,Clip clipBehavior = Clip.none,
}) {}

从中可以看到它返回的是一个Future对象。因此我们可以像使用Future一样使用它。下面是该方法的基本用法,详细如下:

showMenu(context:context,///这个坐标值不好调整,下面我的经验值,位置在手指点击点的左下方,想往左移动给110+数字 往下移动180加数字position: const RelativeRect.fromLTRB(170, 180, 110, 10),items: [///建议指定value属性PopupMenuItem<String>(value: 'one',onTap: ()=> debugPrint('tap one'),child: const Text('1'),),PopupMenuItem<String>(value:'two',onTap: ()=> debugPrint('tap two'),child: const Text('2'),),PopupMenuItem<String>(value:'three',onTap: ()=> debugPrint('tap three'),child: const Text('3'),),],)

3. 补充用法

我们在上一小节介绍了showMenu的基本用法,下面是该方法的补充用法:

showMenu(context:context,position: const RelativeRect.fromLTRB(170, 180, 110, 10),items: [///省略,可以参考上面小节的代码 ],).then((value) => null).whenComplete(() => null);

该用法中主要以Future的方式运行,我们可以在PopMenu关闭后做一些逻辑任务。比如popMenu关闭后会调用then方法,此时可以在该方法中做一些逻辑业务。当
然了,具体的业务与项目有关,我习惯在popMenu关闭时恢复被popMenu遮挡的页面。

4. 内容总结

最后,我们对本章回中的内容做一个全面总结:

  • 可以单独显示PopMenu,也可以和结合showMenu方法一起使用;
  • 我们可以通过showMenu方法的参数来控制PopMenu的位置;
  • 我们可以像Futrue一样使用showMenu方法;
    看官们,与"再谈showMenu的用法"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!
http://www.lryc.cn/news/298753.html

相关文章:

  • 海量数据处理商用短链接生成器平台 - 4
  • 基于CNN+LSTM深度学习网络的时间序列预测matlab仿真
  • 如何控制系统安全 或 控制流氓软件
  • 【Docker】Docker Container(容器)
  • Amazon CodeWhisperer 免费 AI 代码生成助手体验分享
  • Spring Cloud Gateway 网关路由
  • 【Spring学习】Spring Data Redis:RedisTemplate、Repository、Cache注解
  • C语言:内存函数
  • Go+:一种简单而强大的编程语言
  • 【开源】SpringBoot框架开发数字化社区网格管理系统
  • Lua可变参数函数
  • Nginx实战:3-日志按天分割
  • springmvc中的数据提交方式
  • unity2017 遇到visual studio 2017(社区版) 30日试用期到了
  • Netty应用(六) 之 异步 Channel
  • STM32CubeMx+MATLAB Simulink串口输出实验,UART/USART串口测试实验
  • 【51单片机】串口通信实验(包括波特率如何计算)
  • Kafka零拷贝技术与传统数据复制次数比较
  • npm ERR! network This is a problem related to network connectivity.
  • 【SQL高频基础题】619.只出现一次的最大数字
  • STM32F1 - GPIO外设
  • 新增同步管理、操作日志模块,支持公共链接分享,DataEase开源数据可视化分析平台v2.3.0发布
  • 跟着pink老师前端入门教程-day19
  • ChatGPT学习第一周
  • 爬爬爬——今天是浏览器窗口切换和给所选人打钩(自动化)
  • Netty应用(五) 之 Netty引入 EventLoop
  • 【c++基础】国王的魔镜
  • 配置DNS正反向解析服务!!!!
  • 大模型2024规模化场景涌现,加速云计算走出第二增长曲线
  • Gitlab和Jenkins集成 实现CI (三)