DropdownMenu菜单


我们在上一章回中介绍了"DropdownMenu组件"相关的内容,本章回中将介绍DropdownButton组件.闲话休提,让我们一起Talk Flutter吧。

1. 概念介绍

我们在本章回中介绍的DropdownButton组件和上一章回中介绍的DropdownMenu组件类似,主要用来实现下拉菜单,不过该组件在外观上像一个带图标的按钮,
点击按钮后会弹出下拉菜单,下面是该组件的外观效果图。本章回中将详细介绍该组件的使用方法。

在这里插入图片描述

2. 使用方法

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

2.1 DropdownButton

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

  • value属性:主要用来控制按钮上显示的内容,该内容也是下拉菜单中被选择的内容;
  • dropdownColor属性:主要用来控制下拉菜单的背景颜色;
  • style属性:主要用来控制下拉菜单中文字的颜色,value属性中的颜色也受该属性控制;
  • icon属性:主要用来控制按钮上显示的图标;
  • iconSize属性:主要用来控制按钮上图标的大小;
  • items属性:主要用来控制下拉菜单中的内容,它是一个List,可以存放多个内容;
  • onChanged属性:主要用来响应按钮的点击事件,它是方法类型,点击按钮时回调此属性对应的方法;
    上面介绍的这些属性中几乎都会用到,此外该组件还提供了其它的属性,大家可以参考官方文档的介绍;我们重点介绍一下items属性,它的类型是DropdownMenuItem,
    而且是List类型,也就是说它可以存放多个菜单项。此外,style属性是TextStyle类型,开始我以为该属性可以控制按钮的外观风格,使用后才发现它只能控制按钮
    上显示文字的风格。那么如何修改按钮的外观风格?没有办法修改,至少我没有找到修改的方法,这也算是该组件的缺点吧。

2.2 DropdownMenuItem

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

  • vlaue属性:类似map中的key,它不会显示在菜单中,主要用来识别某个菜单项;
  • child属性:主要用来控制菜单项中显示的内容,可以是文本或者图片;
    该组件还提供了其它的属性,主要用来修改菜单项的风格,比较颜色等。我们在这里就不详细介绍了,我重点说一下value属性,它和DropdownButton中的value属性
    相同,这两个value属性的值必须保持一致。该属性还会出现在onChanged属性对应的方法参数中,我们可以从参数中获取到当前被选择的菜单项的value。

3. 示例代码

List<DropdownMenuItem<String>> itemList = [
  ///value和onChanged中的value一致,child是菜单项中显示的内容
  const DropdownMenuItem(value: "one",child:Text("niceDay"), ),
  const DropdownMenuItem(value: "two",child: Text("today"),),
  const DropdownMenuItem(value: "three",child: Text("yesterday"),),
];

String itemSelectedValue = "two";

DropdownButton(
  ///这个显示的是被选择菜单项的值,它的类型与DropdownMenuItem中的泛型一致
  value: itemSelectedValue,
  ///下拉菜单的背景颜色
  dropdownColor: Colors.yellow,
  ///下拉菜单中文字的颜色
  style: const TextStyle(color: Colors.blue),
  iconSize: 32,
  icon: const Icon(Icons.schedule),
  items: itemList,
  onChanged: (value){
    debugPrint("it is : $value");
    setState(() {
      itemSelectedValue = value.toString();
    });
  },
),

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

4. 内容总结

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

  • 下拉菜单按钮通过DropdownButton和DropdownMenuItem组件一起实现;
  • DropdownButton组件主要控制按钮显示的内容和响应点击按钮事件;
  • DropdownMenuItem组件主要控制菜单项的内容和风格;
  • DropdownButton和DropdownMenuItem组件都提供了相关的属性来控制下拉菜单;

5. 经验分享

我们通过四种不同的组件实现了下拉菜单功能,我感觉使用DropdownMenu组件的场景更加多一些,因为它的外观是一个输入框,在输入框中显示被选择菜单的内容,而
使用DropdownButton的场景比较少,它的外观是一个带图标的按钮,菜单中被选择的内容显示在按钮上,和普通的按钮十分相似,但是不能修改按钮的外观。大家可以
结合自己项目的需求选择不同的组件来实现下拉菜单功能。
看官们,与"DropdownButton组件"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

  • 18
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: vant dropdownmenu 是一个基于 Vue.js 的下拉菜单组件,可以用于网页或移动端应用程序中。它提供了丰富的功能和样式,可以轻松地创建各种类型的下拉菜单,如单选、多选、级联等。此外,vant dropdownmenu 还支持自定义菜单项和样式,以满足不同的需求。 ### 回答2: Vant是一个移动端的UI组件库,其中包括了一些常用的基础组件和高级组件,可以让开发者快速地搭建出美观、易用的移动应用界面。其中,Vant的dropdownmenu组件是一种下拉菜单选择器,可以满足用户在移动端选择多个选项的需求。 下拉菜单选择器在移动端是一种常见的操作方式。用户可以通过点击下拉按钮来打开下拉菜单,从而选择自己需要的选项。Vant的dropdownmenu组件充分考虑了在移动设备上的操作体验,使用了现代化卡片式风格及平面化的设计元素,使得下拉菜单组件显得更加简洁、美观、易用。 使用Vant的dropdownmenu组件,只需要按照一定的数据格式将选项数据传递给组件,就可以轻松地创建出一个下拉菜单选择器,满足各种用户需求。该组件支持多级菜单联动、多选、单选、复杂对象等多种类型的选项数据,并且可以自定义选项展示方式和选项格式。此外,Vant的dropdownmenu组件还支持选项过滤,支持根据关键词搜索并过滤选项。 总的来说,Vant的dropdownmenu组件是一种功能强大、易用性高的下拉菜单选择器,适用于各种移动应用场景中。它的简单易用性可以帮助开发者更快地搭建出移动应用程序,提供更好的用户体验。 ### 回答3: vant dropdownmenu 是一款基于 Vue.js 的下拉菜单组件,主要用于在页面中创建下拉式菜单。它具备多种功能,如自定义触发器、对齐方式、菜单项数量等等,还可以根据具体需求定制样式和布局。 vant dropdownmenu 以灵活、易用为特点,可用于各种场景,如导航栏、搜索框、下拉列表等。不仅如此,vant dropdownmenu 还具有良好的响应式布局,能够适应不同的设备宽度,满足不同用户的需求。 vant dropdownmenu 的使用也十分简单,只需要在 Vue 组件中引入,并将需要显示的菜单项传入即可。通过配置不同的参数,可以实现不同的效果和交互。在进行组件开发时,vant dropdownmenu 可以让我们更加注重用户体验和交互方式,提升整个页面的使用体验。 总之,vant dropdownmenu 是一款优秀的 Vue.js 下拉菜单组件,具有灵活、易用、响应式布局等特点。它可以用于各种场景,帮助开发者轻松实现下拉式菜单功能,提供优秀的用户体验和交互方式。如果您在项目开发中需要使用下拉菜单,vant dropdownmenu 是一个不错的选择。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

talk_8

真诚赞赏,手有余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值