博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Flutter 自定义功能强大的下拉筛选菜单 package
阅读量:6910 次
发布时间:2019-06-27

本文共 3347 字,大约阅读时间需要 11 分钟。

gzx_dropdown_menu

自定义功能强大的下拉筛选菜单flutter package

  • Custom dropdown header
  • Custom dropdown header item
  • Custom dropdown menu
  • Custom dropdown menu show animation time
  • Control dropdown menu show or hide

如果对您有帮助,麻烦给个Star,您的支持是我持续更新的动力。

导航

Gif效果图

分别是仿美团和淘宝的效果图

美团的代码就在这个仓库的example目录下
淘宝的代码在

如何使用

由于最近被qiang,所以没有发布到Pub,后续会发布到Pub

1、添加gzx_dropdown_menu package

打开pubspec.yaml文件 添加如下代码

gzx_dropdown_menu :    git:      url: https://github.com/GanZhiXiong/gzx_dropdown_menu.git复制代码

添加位置如下图所示

添加后打开Terminal,执行flutter packages get

2、使用

打开本仓库example项目下的gzx_dropdown_menu_test_page.dart文件自己看。

没空编辑文字了,而且说这么多还不如你直接运行下看下效果,然后看下代码,就知道如何使用了。

算了????还是简单说下吧!!!

你只需要将GZXDropDownHeader和GZXDropDownMenu嵌套到你的代码中即可

GZXDropDownHeader

这里要注意了,这些参数不是必须要要写的,我写出来只是让你知道强大的自定义功能,实际上就前面三个参数是必填的

// 下拉菜单头部  GZXDropDownHeader(    // 下拉的头部项,目前每一项,只能自定义显示的文字、图标、图标大小修改    items: [      GZXDropDownHeaderItem(_dropDownHeaderItemStrings[0]),      GZXDropDownHeaderItem(_dropDownHeaderItemStrings[1]),      GZXDropDownHeaderItem(_dropDownHeaderItemStrings[2]),      GZXDropDownHeaderItem(_dropDownHeaderItemStrings[3], iconData: Icons.filter_frames, iconSize: 18),    ],    // GZXDropDownHeader对应第一父级Stack的key    stackKey: _stackKey,    // controller用于控制menu的显示或隐藏    controller: _dropdownMenuController,    // 当点击头部项的事件,在这里可以进行页面跳转或openEndDrawer    onItemTap: (index) {      if (index == 3) {        _scaffoldKey.currentState.openEndDrawer();        _dropdownMenuController.hide();      }    },    // 头部的高度    height: 40,    // 头部背景颜色    color: Colors.red,    // 头部边框宽度    borderWidth: 1,    // 头部边框颜色    borderColor: Color(0xFFeeede6),    // 分割线高度    dividerHeight: 20,    // 分割线颜色    dividerColor: Color(0xFFeeede6),    // 文字样式    style: TextStyle(color: Color(0xFF666666), fontSize: 13),    // 下拉时文字样式    dropDownStyle: TextStyle(      fontSize: 13,      color: Theme.of(context).primaryColor,    ),    // 图标大小    iconSize: 20,    // 图标颜色    iconColor: Color(0xFFafada7),    // 下拉时图标颜色    iconDropDownColor: Theme.of(context).primaryColor,  ),复制代码

GZXDropDownMenu

// 下拉菜单  GZXDropDownMenu(    // controller用于控制menu的显示或隐藏    controller: _dropdownMenuController,    // 下拉菜单显示或隐藏动画时长    animationMilliseconds: 500,    // 下拉菜单,高度自定义,你想显示什么就显示什么,完全由你决定,你只需要在选择后调用_dropdownMenuController.hide();即可    menus: [      GZXDropdownMenuBuilder(          dropDownHeight: 40 * 8.0,          dropDownWidget: _buildQuanChengWidget((selectValue) {            _dropDownHeaderItemStrings[0] = selectValue;            _dropdownMenuController.hide();            setState(() {});          })),      GZXDropdownMenuBuilder(          dropDownHeight: 40 * 8.0,          dropDownWidget: _buildConditionListWidget(_brandSortConditions, (value) {            _selectBrandSortCondition = value;            _dropDownHeaderItemStrings[1] =            _selectBrandSortCondition.name == '全部' ? '品牌' : _selectBrandSortCondition.name;            _dropdownMenuController.hide();            setState(() {});          })),      GZXDropdownMenuBuilder(          dropDownHeight: 40.0 * _distanceSortConditions.length,          dropDownWidget: _buildConditionListWidget(_distanceSortConditions, (value) {            _dropDownHeaderItemStrings[2] = _selectDistanceSortCondition.name;            _selectDistanceSortCondition = value;            _dropdownMenuController.hide();            setState(() {});          })),    ],  )复制代码

转载地址:http://qlbcl.baihongyu.com/

你可能感兴趣的文章
JavaScript是如何工作的:深入类和继承内部原理 + Babel和TypeScript 之间转换
查看>>
.net reactor使用教程(一)——界面各功能说明
查看>>
腾讯 AI Lab 正式开源PocketFlow,让深度学习放入手机!
查看>>
教你在Docker上不到2分钟建立一个多模型数据库!
查看>>
网络编程
查看>>
zookeeper选举机制
查看>>
python输入输出语句
查看>>
无法连接LINUX中的MYSQL
查看>>
HTTPS时代的到来是大势所趋!阿里云CDN如何助力企业网站进入HTTPS时代
查看>>
Linux 积极使用swap空间
查看>>
安装zibbix
查看>>
设计缓存系统该注意的问题
查看>>
svn服务器搭建
查看>>
[官方翻译]RabbitMQ生产上线前准备
查看>>
Haskell开发以太坊智能合约
查看>>
C++除零异常
查看>>
css的兼容问题汇总
查看>>
android apk 防止反编译技术第五篇-完整性校验(转)
查看>>
ios优秀开发者笔记汇总
查看>>
CSS 异步加载技术 不影响页面渲染
查看>>