首页 > 其他分享 >如何创建下拉式菜单

如何创建下拉式菜单

时间:2024-08-28 22:51:20浏览次数:13  
标签:菜单 创建 下拉式 组件 菜单项 DropdownMenuEntry 下拉菜单 属性

文章目录


我们在上一章回中介绍了"如何禁止页面跟随手机自动旋转"相关的内容,本章回中将介绍DropdownMenu组件.闲话休提,让我们一起Talk Flutter吧。

在这里插入图片描述

1. 概念介绍

我们在本章回中介绍的DropdownMenu组件就是常用的下拉菜单,它表面上看只显示一个内容,但是点击菜单上的倒三角后会弹出一个菜单,菜单中包含多个菜单项供选
择。本章回中将详细介绍该组件的使用方法。

2. 使用方法

下拉菜单通过DropdownMenu组件和DropdownMenuEntry组件一起配合实现,DropdownMenu组件主要控制菜单的外观和响应点击事件,DropdownMenuEntry组件
主要控制菜单中显示的内容。接下来我们分别介绍这两种组件的用法。

2.1 DropdownMenu

该组件提供了相关的属性来控制下拉菜单的外观和功能,下面是常用的属性:

  • width属性:主要用来控制下拉菜单的宽度;
  • menuHeight属性:主要用来控制下拉菜单的高度;
  • dropdownMenuEntries属性:主要用来控制下拉菜单中显示的内容;
  • leadingIcon属性:主要用来显示在内容前面的图标;
  • trailingIcon属性:主要用来显示在下拉菜单右侧的图标,默认显示实心的倒三角;
  • label属性:表示下拉时菜单中没有选择内容时默认显示的内容;
  • onSelected属性:该属性得方法类型,用来响应下拉菜单的点击事件;
    上面介绍的这些属性中几乎都会用到,此外该组件还提供了其它的属性,大家可以参考官方文档的介绍;此外,我们重点介绍一下dropdownMenuEntries属性,它的类
    型是DropdownMenuEntry,而且是List类型,也就是说它可以存放多个菜单项。

2.1 DropdownMenuEntry

该组件提供了相关的属性来控制菜单项的相关内容与风格,下面是常用的属性:

  • value属性:表示菜单项的值,它不会出现在菜单中;
  • label属性:表示菜单项的内容,它会显示在菜单项中;
  • leadingIcon属性:用来控制label前面的图标;
  • trailingIcon属性:用来控制label后面的图标;
  • style属性:用来控制菜单项的风格;
    上面介绍的这些属性中前两个属性是必选属性,其它属性主要用来控制菜单项的风格,都是可选属性。

3. 示例代码

  List<DropdownMenuEntry<String>> list = [
    const DropdownMenuEntry<String>(value:"1", label: "One"),
    const DropdownMenuEntry<String>(value:"2", label: "Two"),
    const DropdownMenuEntry<String>(value:"3", label: "Three"),
  ];

  String selectedValue = "default";

DropdownMenu(
  width: 300,
  menuHeight: 400,
  ///下拉菜单中显示的内容
  dropdownMenuEntries: list,
  ///在显示内容前面的图标
  leadingIcon: const Icon(Icons.numbers),
  ///没有下拉时菜单中显示的内容
  label: Text(selectedValue),
  ///菜单右侧显示的图标,默认是一个实心的倒三角
  trailingIcon: const Icon(Icons.arrow_downward),
  ///下拉菜单时回调该方法
  onSelected: (value) {
    setState(() {
      selectedValue = value.toString();
    });
  },
),

上面的示例代码演示了DropdownMenu和DropdownMenuEntry组件的用法,我们创建了一个包含三个菜单项的下拉菜单,点击菜单右侧的图标就会弹出菜单项供我们
选择,选择某个菜单项目后菜单消失,同时把被选择的菜单项显示在菜单上面。下面是该程序的运行效果图。

4. 内容总结

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

  • 下拉菜单通过DropdownMenu和DropdownMenuEntry组件一起实现;
  • DropdownMenu组件主要控制下拉菜单的外观和响应点击事件;
  • DropdownMenuEntry组件主要控制菜单项的内容和风格;
  • DropdownMenu和DropdownMenuEntry组件都提供了相关的属性来控制下拉菜单;
    看官们,与"DropdownMenu组件"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

标签:菜单,创建,下拉式,组件,菜单项,DropdownMenuEntry,下拉菜单,属性
From: https://blog.csdn.net/talk_8/article/details/141651295

相关文章

  • php 创建压缩包zip,并将指定文件放入zip中
    目前用的是tp6框架//指定要压缩的文件和压缩包的名称$filesToZip=[public_path().'pdffile/生物样本库-原件.pdf'];//要压缩的文件列表$zipFileName=public_path().'pdfzip/archive.zip';//压缩包名称//创建一个新的ZIP档案$zip......
  • 【Java】多线程创建与管理 (实操图解)
    Java系列文章目录补充内容Windows通过SSH连接Linux第一章Linux基本命令的学习与Linux历史文章目录Java系列文章目录一、前言二、学习内容:三、问题描述四、解决方案:4.1Thread4.2Runnable五、总结:一、前言多线程入门二、学习内容:实现多线程效果三、问题......
  • 03. SpringBoot 项目创建
    接下来我们将要完成一个基础的Springboot项目的创建,并且将项目上传到Gitee1.查看官网,选择版本学习任何一门技术,一定要学会从官网了解一手信息,无论是哪个博主的博客都是有时效性的,我们要掌握这样的习惯,看懂看不懂另说,起码知道从哪里去找。spring官网地址:https://sp......
  • Python创建字典与fromkeys的坑
    字典很重要字典dict是Python中很重要的一个数据类型,通过键值映射,能够很好的定位查找.Django,Flask这些Web框架在做前后端分离时,就是用字典传数据的,因为它和列表list配合起来,能够很好的与json格式的数据相互转化.用Flask+Echarts做数据可视化大屏,传的变量都是......
  • html+css编写三级菜单
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"/><metaname="viewport"content="width=device-width,initial-scale=1.0"/><title>Document</title&g......
  • html+css编写二级菜单
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"/><metaname="viewport"content="width=device-width,initial-scale=1.0"/><title>Document</title&g......
  • Amazon Bedrock 实践:零基础创建贪吃蛇游戏
    本文探讨了如何利用AmazonBedrock和大型语言模型,快速创建经典的贪吃蛇游戏原型代码。重点展示了利用提示工程,将创新想法高效转化为可运行代码方面的过程。文章还介绍了评估和优化提示词质量的最佳实践。亚马逊云科技开发者社区为开发者们提供全球的开发技术资源。这里有技术......
  • 使用 nuxi add 快速创建 Nuxt 应用组件
    title:使用nuxiadd快速创建Nuxt应用组件date:2024/8/28updated:2024/8/28author:cmdragonexcerpt:通过使用nuxiadd命令,你可以快速创建Nuxt应用中的各种实体,如组件、页面、布局等。这可以极大地提高开发效率,减少手动创建文件的工作量。希望本文的示例和解释......
  • 使用idea快速创建springbootWeb项目(springboot+springWeb+mybatis-Plus)
    idea快速创建springbootWeb项目详细步骤如下1)创建项目2)选择springboot版本3)添加web依赖4)添加Thymeleaf5)添加lombok依赖然后点击create进入下一步双击pom.xml文件6)添加mybatis-plus依赖        这里使用的springboot版本比较新,mybatis-plus-boot-star......
  • 创建一个用于修改本地DNS解析记录的Windows客户端
    在许多场景下,我们可能需要手动修改本地的DNS解析记录,以便将特定的域名解析到指定的IP地址上。例如,在开发和测试环境中,我们可能希望将某些域名指向本地服务器,而不依赖于公共DNS服务。为此,Windows系统中的hosts文件就可以派上用场。然而,手动编辑hosts文件可能会比较麻烦,......