iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Flutter如何实现菜单弹出框PopupMenuButton功能
  • 397
分享到

Flutter如何实现菜单弹出框PopupMenuButton功能

2024-04-02 19:04:59 397人浏览 八月长安
摘要

这篇文章将为大家详细讲解有关Flutter如何实现菜单弹出框PopupMenuButton功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。相信在实际开发过程当中,肯定少

这篇文章将为大家详细讲解有关Flutter如何实现菜单弹出框PopupMenuButton功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

相信在实际开发过程当中,肯定少不了这样的功能:

Flutter如何实现菜单弹出框PopupMenuButton功能

点击 AppBar 右上角的按钮,弹出一个菜单供用户选择。

幸运的是,Flutter 提供给我们了一个 Widget,直接就能实现如上的效果。

PopupMenuButton

还是老规矩,先看官方的说明:

Displays a menu when pressed and calls onSelected [1] when the menu is dismissed because an item was selected. The value passed to  onSelected [2] is the value of the selected menu item.

One of child [3] or  icon [4] may be provided, but not both. If  icon [5] is provided, then  PopupMenuButton [6] behaves like an  IconButton [7] .

If both are null, then a standard overflow icon is created (depending on the platfORM).

大致意思为:

当按下的时候显示一个菜单,选择了一个项目的时候会回调 onSelected ,传递的值是所选菜单的值。

可以提供 child or  icon ,但是不能同时提供。

如果为空,则提供一个默认的图标,取决于平台。

构造函数

看完了官方说明,再来看构造函数:

const PopupMenuButton({
 Key key,
 @required this.itemBuilder,
 this.initialValue,
 this.onSelected,
 this.onCanceled,
 this.tooltip,
 this.elevation = 8.0,
 this.padding = const EdgeInsets.all(8.0),
 this.child,
 this.icon,
 this.offset = Offset.zero,
 this.enabled = true,
}) : assert(itemBuilder != null),
assert(offset != null),
assert(enabled != null),
assert(!(child != null && icon != null)), // fails if passed both parameters
super(key: key);

这里面每一个参数应该都很好理解,就不做过多的解释了,

唯一必传的参数就是 itemBuilder ,也可以看到后面的断言:

assert(!(child != null && icon != null)) 判断了 child 、icon 是否同时不为空,如果是的话就报错了。

简单 Demo

构造函数理解了,官方也提供了一个 Demo,我们来看一下运行效果:

Flutter如何实现菜单弹出框PopupMenuButton功能

再来看一下代码:

/// 首先定义了一个枚举
enum WhyFarther {
 harder,
 smarter,
 selfStarter,
 tradinGCharter,
}
/// ------------------------------------
/// build 方法
Widget build(BuildContext context) {
 return Scaffold(
 appBar: AppBar(
 title: Text('PopupMenuButtonPage'),
 actions: <Widget>[
 PopupMenuButton<WhyFarther>(
 onSelected: (WhyFarther result) {
 setState(() {
 _selection = result;
 });
 },
 icon: Icon(Icons.more_vert),
 itemBuilder: (BuildContext context) => <PopupMenuEntry<WhyFarther>>[
 const PopupMenuItem<WhyFarther>(
 value: WhyFarther.harder,
 child: Text('Working a lot harder'),
 ),
 const PopupMenuItem<WhyFarther>(
 value: WhyFarther.smarter,
 child: Text('Being a lot smarter'),
 ),
 const PopupMenuItem<WhyFarther>(
 value: WhyFarther.selfStarter,
 child: Text('Being a self-starter'),
 ),
 const PopupMenuItem<WhyFarther>(
 value: WhyFarther.tradingCharter,
 child: Text('Placed in charge of trading charter'),
 ),
 ],
 ),
 ],
 ),
 body: Container(),
 );
}

解释一下逻辑:

1. 首先定义了一个枚举

2. 然后在  AppBar  的「actions」里定义了  PopupMenuButton

3. 设置 icon 为  Icon(Icons.more_vert)

4. itemBuilder  需返回一个  List<PopupMenuEntry<T>>

5. 这里传入的值就是  PopupMenuItem<WhyFarther>

6. 然后定义  onSelected  参数接收点击回调

这样整体的逻辑就是定义好了,运行一下:

Flutter如何实现菜单弹出框PopupMenuButton功能

关于“Flutter如何实现菜单弹出框PopupMenuButton功能”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: Flutter如何实现菜单弹出框PopupMenuButton功能

本文链接: https://www.lsjlt.com/news/72559.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Flutter如何实现菜单弹出框PopupMenuButton功能
    这篇文章将为大家详细讲解有关Flutter如何实现菜单弹出框PopupMenuButton功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。相信在实际开发过程当中,肯定少...
    99+
    2022-10-19
  • Flutter实现PopupMenu(弹出设置菜单)
    PopupMenuButton简介 PopupMenuButton是一个用于创建弹出菜单的小部件。它通常与IconButton或其他触发菜单显示的小部件一起使用。当用户点击触发按钮时,PopupMen...
    99+
    2023-09-28
    flutter android PopupMenuButton PopupMenuItem 弹出设置菜单
  • jQuery如何实现弹出框功能
    本篇内容介绍了“jQuery如何实现弹出框功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在我们构建网站或应用程序时,经常需要使用弹出框来...
    99+
    2023-07-06
  • Android 自定义弹出菜单和对话框功能实例代码
    Android 开发当中,可能会存在许多自定义布局的需求,比如自定义弹出菜单(popupWindow),以及自定义对话框(Dialog)。话不多说,直接上图片。 先讲第一种,自定义PopUpWindow1.popupWindowp...
    99+
    2023-05-30
    android 弹出菜单 对话框
  • autojs如何实现长按弹窗菜单功能
    本篇内容主要讲解“autojs如何实现长按弹窗菜单功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“autojs如何实现长按弹窗菜单功能”吧!弹窗菜单由粗到细, 自顶向下的写代码我们现在要修改的...
    99+
    2023-07-05
  • 微信小程序如何实现action-sheet弹出底部菜单功能
    小编给大家分享一下微信小程序如何实现action-sheet弹出底部菜单功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!具体如...
    99+
    2022-10-19
  • vue2.0中怎么利用contextmenu实现右键弹出菜单功能
    vue2.0中怎么利用contextmenu实现右键弹出菜单功能,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1.事情对象<!DOCTY...
    99+
    2022-10-19
  • Android中怎么实现长按弹出上下文菜单功能
    本篇文章为大家展示了Android中怎么实现长按弹出上下文菜单功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。在程序合适位置给一个控件注册上下文菜单组件可以是按钮,文本框,还可以是列表条目,下以l...
    99+
    2023-05-31
    android
  • Android如何实现底部缓慢弹出菜单
    这篇文章主要介绍了Android如何实现底部缓慢弹出菜单,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。项目要求要做一个从底部缓慢弹出一个Button Menu 开始编码: M...
    99+
    2023-05-30
    android
  • PHP怎么实现弹出对话框功能
    这篇文章主要介绍“PHP怎么实现弹出对话框功能”,在日常操作中,相信很多人在PHP怎么实现弹出对话框功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PHP怎么实现弹出对话框功能”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-17
  • Android中实现长按照片弹出右键菜单功能的实例代码
    场景效果 注: 实现 将布局改为LinearLayout,并通过android:orientation="vertical">设置为垂直布局。 然后添加一个ImageV...
    99+
    2022-06-06
    菜单 Android
  • Android实现底部弹出的对话框功能
    环境: 主机:WIN10 开发环境:Android Studio 2.2 Preview 3说明:两种方法实现底部弹出的对话框: Dialog DialogFragment推荐用DialogFragment效果图:布局文件dialo...
    99+
    2023-05-31
    android 底部 对话框
  • 如何利用transform实现一个纯CSS弹出菜单
    这篇“如何利用transform实现一个纯CSS弹出菜单”除了程序员外大部分人都不太理解,今天小编为了让大家更加理解“如何利用transform实现一个纯CSS弹出菜单”,给大家总结了以下内容,具有一定借鉴价值,内容详细步骤清晰,细节处理妥...
    99+
    2023-06-08
  • javascrip如何实现弹出框
    小编给大家分享一下javascrip如何实现弹出框,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在js中,可以使用confirm方法弹出是否弹出框,语法格式为“c...
    99+
    2023-06-15
  • flutter如何实现点击下拉栏微信右上角弹出窗功能
    小编给大家分享一下flutter如何实现点击下拉栏微信右上角弹出窗功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!先看效果实现需求分析这个是使用 PopupRo...
    99+
    2023-06-15
  • JavaScript如何实现下拉菜单功能
    这篇文章主要介绍了JavaScript如何实现下拉菜单功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体代码如下所示:<!doct...
    99+
    2022-10-19
  • EasyUI如何实现树形功能菜单
    这篇文章给大家分享的是有关EasyUI如何实现树形功能菜单的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。页面展示截图如下:为了实现以上效果,在开始前必须先将环境配置一下。第一步:...
    99+
    2022-10-19
  • flutter 实现点击下拉栏微信右上角弹出窗功能
    先看效果实现 需求分析 这个是使用 PopupRoute这个路由类进行实现 大概原理就是利用PopupRpute这个类进行改造,然后自定义一个页面,页面内镶嵌一个动画类,用来实现缩...
    99+
    2022-11-12
  • Flutter UI如何实现侧拉抽屉菜单
    小编给大家分享一下Flutter UI如何实现侧拉抽屉菜单,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!在移动开发中,我们可以通过底部导航栏、标签页或是侧边抽屉菜单来实现导航。这是在小屏幕上可以充分利用空间。我们...
    99+
    2023-06-29
  • 怎么使用jQuery实现页面弹出提示框功能
    本篇内容主要讲解“怎么使用jQuery实现页面弹出提示框功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用jQuery实现页面弹出提示框功能”吧!一、了解jQueryjQuery是一款快...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作