GithubHelp home page GithubHelp logo

best-flutter / flutter_dropdown_menu Goto Github PK

View Code? Open in Web Editor NEW
265.0 7.0 71.0 298 KB

A dropdown menu for Flutter.

License: MIT License

Java 0.59% Objective-C 1.22% Dart 98.19%
flutter flutter-widget

flutter_dropdown_menu's Introduction

flutter_dropdown_menu

A dropdown menu for Flutter.

Showcase

showcase


showcase

showcase

Table of contents

Installion

dropdown_menu: ^1.1.0

Build simple list menu

Build tree menu

Build custom menu

How to use



Examples

seemain.dart

flutter_dropdown_menu's People

Contributors

jzoom avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

flutter_dropdown_menu's Issues

catch onSelectedItem

After successfully implemented your drop-down menu I would like to know how can I catch when an item is selected/changed.
Thank you for reading, nice work

Error: A value of type '#lib1::TickerFuture' can't be assigned to a variable of type 'dart.async::Future<dart.core::Null>'.

Compiler message:
file:///Users/xxx/Desktop/FlutterDemo/flutter_dropdown_menu-master/lib/_src/dropdown_menu.dart:271:16: Error: A value of type '#lib1::TickerFuture' can't be assigned to a variable of type 'dart.async::Futuredart.core::Null'.
Try changing the type of the left hand side, or casting the right hand side to 'dart.async::Futuredart.core::Null'.
return onHide();
^
file:///Users/xxx/Desktop/FlutterDemo/flutter_dropdown_menu-master/lib/_src/dropdown_menu.dart:310:12: Error: A value of type '#lib1::TickerFuture' can't be assigned to a variable of type 'dart.async::Futuredart.core::Null'.
Try changing the type of the left hand side, or casting the right hand side to 'dart.async::Futuredart.core::Null'.
return _handleShow(index, true);

_ElementLifecycle.defunct': is not true.

Either the assertion indicates an error in the framework itself,
or we should provide substantially more information in this error
message to help you determine and fix the underlying cause.
In either case, please report this assertion by filing a bug on
GitHub:
https://github.com/flutter/flutter/issues/new?template=BUG.md

When the exception was thrown, this was the stack:
2 Element.markNeedsBuild (package:flutter/src/widgets/framework.dart:3641:12)
3 State.setState (package:flutter/src/widgets/framework.dart:1161:14)
4 _DropdownMenuState._handleShow (package:dropdown_menu/_src/dropdown_menu.dart:316:5)
5 _DropdownMenuState.onShow (package:dropdown_menu/_src/dropdown_menu.dart:310:12)
6 _DropdownMenuState.onEvent (package:dropdown_menu/_src/dropdown_menu.dart:355:11)
7 DropdownState._onController (package:dropdown_menu/_src/drapdown_common.dart:189:5)
8 ChangeNotifier.notifyListeners (package:flutter/src/foundation/change_notifier.dart:206:21)
9 DropdownMenuController.show (package:dropdown_menu/_src/drapdown_common.dart:39:5)
10 _DropdownHeaderState.buildItem. (package:dropdown_menu/_src/dropdown_header.dart:88:24)
11 GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:182:24)
12 TapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:365:11)
13 TapGestureRecognizer.handlePrimaryPointer (package:flutter/src/gestures/tap.dart:275:7)
14 PrimaryPointerGestureRecognizer.handleEvent (package:flutter/src/gestures/recognizer.dart:455:9)
15 PointerRouter._dispatch (package:flutter/src/gestures/pointer_router.dart:75:13)
16 PointerRouter.route (package:flutter/src/gestures/pointer_router.dart:102:11)
17 _WidgetsFlutterBinding&BindingBase&GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:218:19)
18 _WidgetsFlutterBinding&BindingBase&GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:198:22)
19 _WidgetsFlutterBinding&BindingBase&GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:156:7)
20 _WidgetsFlutterBinding&BindingBase&GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:102:7)
21 _WidgetsFlutterBinding&BindingBase&GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:86:7)
25 _invoke1 (dart:ui/hooks.dart:250:10)
26 _dispatchPointerDataPacket (dart:ui/hooks.dart:159:5)
(elided 5 frames from class _AssertionError and package dart:async)

The DropdownMenuController sending notification was:
Instance of 'DropdownMenuController'

_DropdownMenuState#f9cfe(tickers: tracking 1 ticker) was disposed with an active Ticker

flutter: ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞════════════════════════
The following assertion was thrown while finalizing the widget
tree:
_DropdownMenuStatef9cfe(tickers: tracking 1 ticker) was disposed
with an active Ticker.
_DropdownMenuState created a Ticker via its
TickerProviderStateMixin, but at the time dispose() was called on
the mixin, that Ticker was still active. All Tickers must be
disposed before calling super.dispose(). Tickers used by
AnimationControllers should be disposed by calling dispose() on
the AnimationController itself. Otherwise, the ticker will leak.
The offending ticker was: _WidgetTicker(created by
_DropdownMenuStatef9cfe(lifecycle state: created, tickers:
tracking 3 tickers))
The stack trace when the _WidgetTicker was actually created was:
0 new Ticker.
(package:flutter/src/scheduler/ticker.dart:64:40)
1 new Ticker
(package:flutter/src/scheduler/ticker.dart:66:6)
2 new _WidgetTicker
(package:flutter/src/widgets/ticker_provider.dart:225:80)
3
__DropdownMenuState&DropdownState&TickerProviderStateMixin.createTicker
(package:flutter/src/widgets/ticker_provider.dart:161:34)
4 new AnimationController
(package:flutter/src/animation/animation_controller.dart:245:21)
5 _DropdownMenuState.initState
(package:dropdown_menu/_src/dropdown_menu.dart:132:27)
6 StatefulElement._firstBuild
(package:flutter/src/widgets/framework.dart:4033:58)
7 ComponentElement.mount
(package:flutter/src/widgets/framework.dart:3902:5)
8 Element.inflateWidget
(package:flutter/src/widgets/framework.dart:3084:14)
9 Element.updateChild
(package:flutter/src/widgets/framework.dart:2887:12)
10 RenderObjectElement.updateChildren
(package:flutter/src/widgets/framework.dart:4875:32)
11 MultiChildRenderObjectElement.update
(package:flutter/src/widgets/framework.dart:5208:17)
12 Element.updateChild
(package:flutter/src/widgets/framework.dart:2876:15)
13 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:3935:16)
14 Element.rebuild
(package:flutter/src/widgets/framework.dart:3721:5)
15 ProxyElement.update
(package:flutter/src/widgets/framework.dart:4219:5)
16 Element.updateChild
(package:flutter/src/widgets/framework.dart:2876:15)
17 RenderObjectElement.updateChildren
(package:flutter/src/widgets/framework.dart:4817:32)
18 MultiChildRenderObjectElement.update
(package:flutter/src/widgets/framework.dart:5208:17)
19 Element.updateChild
(package:flutter/src/widgets/framework.dart:2876:15)
20 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:3935:16)
21 Element.rebuild
(package:flutter/src/widgets/framework.dart:3721:5)
22 ProxyElement.update
(package:flutter/src/widgets/framework.dart:4219:5)
23 Element.updateChild
(package:flutter/src/widgets/framework.dart:2876:15)
24 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:3935:16)
25 Element.rebuild
(package:flutter/src/widgets/framework.dart:3721:5)
26 StatefulElement.update
(package:flutter/src/widgets/framework.dart:4085:5)
27 Element.updateChild
(package:flutter/src/widgets/framework.dart:2876:15)
28 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:3935:16)
29 Element.rebuild
(package:flutter/src/widgets/framework.dart:3721:5)
30 ProxyElement.update
(package:flutter/src/widgets/framework.dart:4219:5)
31 Element.updateChild
(package:flutter/src/widgets/framework.dart:2876:15)
32 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:3935:16)
33 Element.rebuild
(package:flutter/src/widgets/framework.dart:3721:5)
34 ProxyElement.update
(package:flutter/src/widgets/framework.dart:4219:5)
35 Element.updateChild
(package:flutter/src/widgets/framework.dart:2876:15)
36 RenderObjectElement.updateChildren
(package:flutter/src/widgets/framework.dart:4817:32)
37 MultiChildRenderObjectElement.update
(package:flutter/src/widgets/framework.dart:5208:17)
38 Element.updateChild
(package:flutter/src/widgets/framework.dart:2876:15)
39 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:3935:16)
40 Element.rebuild
(package:flutter/src/widgets/framework.dart:3721:5)
41 StatefulElement.update
(package:flutter/src/widgets/framework.dart:4085:5)
42 Element.updateChild
(package:flutter/src/widgets/framework.dart:2876:15)
43 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:3935:16)
44 Element.rebuild
(package:flutter/src/widgets/framework.dart:3721:5)
45 ProxyElement.update
(package:flutter/src/widgets/framework.dart:4219:5)
46 Element.updateChild
(package:flutter/src/widgets/framework.dart:2876:15)
47 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:3935:16)
48 Element.rebuild
(package:flutter/src/widgets/framework.dart:3721:5)
49 StatefulElement.update
(package:flutter/src/widgets/framework.dart:4085:5)
50 Element.updateChild
(package:flutter/src/widgets/framework.dart:2876:15)
51 SingleChildRenderObjectElement.update
(package:flutter/src/widgets/framework.dart:5099:14)
52 Element.updateChild
(package:flutter/src/widgets/framework.dart:2876:15)
53 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:3935:16)
54 Element.rebuild
(package:flutter/src/widgets/framework.dart:3721:5)
55 StatelessElement.update
(package:flutter/src/widgets/framework.dart:3981:5)
56 Element.updateChild
(package:flutter/src/widgets/framework.dart:2876:15)
57 SingleChildRenderObjectElement.update
(package:flutter/src/widgets/framework.dart:5099:14)
58 Element.updateChild
(package:flutter/src/widgets/framework.dart:2876:15)
59 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:3935:16)
60 Element.rebuild
(package:flutter/src/widgets/framework.dart:3721:5)
61 StatefulElement.update
(package:flutter/src/widgets/framework.dart:4085:5)
62 Element.updateChild
(package:flutter/src/widgets/framework.dart:2876:15)
63 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:3935:16)
64 Element.rebuild
(package:flutter/src/widgets/framework.dart:3721:5)
65 StatefulElement.update
(package:flutter/src/widgets/framework.dart:4085:5)
66 Element.updateChild
(package:flutter/src/widgets/framework.dart:2876:15)
67 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:3935:16)
68 Element.rebuild
(package:flutter/src/widgets/framework.dart:3721:5)
69 ProxyElement.update
(package:flutter/src/widgets/framework.dart:4219:5)
70 Element.updateChild
(package:flutter/src/widgets/framework.dart:2876:15)
71 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:3935:16)
72 Element.rebuild
(package:flutter/src/widgets/framework.dart:3721:5)
73 ProxyElement.update
(package:flutter/src/widgets/framework.dart:4219:5)
74 Element.updateChild
(package:flutter/src/widgets/framework.dart:2876:15)
75 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:3935:16)
76 Element.rebuild
(package:flutter/src/widgets/framework.dart:3721:5)
77 StatefulElement.update
(package:flutter/src/widgets/framework.dart:4085:5)
78 Element.updateChild
(package:flutter/src/widgets/framework.dart:2876:15)
79 ComponentElement.performRebuild
(package:flutter/src/widgets/framework.dart:3935:16)
80 Element.rebuild
(package:flutter/src/widgets/framework.dart:3721:5)
81 BuildOwner.buildScope
(package:flutter/src/widgets/framework.dart:2340:33)
82
_WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding&WidgetsBinding.drawFrame
(package:flutter/src/widgets/binding.dart:700:20)
83
_WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding._handlePersistentFrameCallback
(package:flutter/src/rendering/binding.dart:285:5)
84
_WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._invokeFrameCallback
(package:flutter/src/scheduler/binding.dart:1016:15)
85
_WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding.handleDrawFrame
(package:flutter/src/scheduler/binding.dart:958:9)
86
_WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._handleDrawFrame
(package:flutter/src/scheduler/binding.dart:874:5)
90 _invoke (dart:ui/hooks.dart:236:10)
91 _drawFrame (dart:ui/hooks.dart:194:3)
(elided 3 frames from package dart:async)

When the exception was thrown, this was the stack:
0 __DropdownMenuState&DropdownState&TickerProviderStateMixin.dispose. (package:flutter/src/widgets/ticker_provider.dart:178:13)
1 __DropdownMenuState&DropdownState&TickerProviderStateMixin.dispose (package:flutter/src/widgets/ticker_provider.dart:191:6)
2 _DropdownMenuState.dispose (package:dropdown_menu/_src/dropdown_menu.dart:147:11)
3 StatefulElement.unmount (package:flutter/src/widgets/framework.dart:4107:12)
4 _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1737:13)
5 ListIterable.forEach (dart:_internal/iterable.dart:39:13)
6 _InactiveElements._unmountAll (package:flutter/src/widgets/framework.dart:1746:25)
7 BuildOwner.finalizeTree. (package:flutter/src/widgets/framework.dart:2426:27)
8 BuildOwner.lockState (package:flutter/src/widgets/framework.dart:2258:15)
9 BuildOwner.finalizeTree (package:flutter/src/widgets/framework.dart:2425:7)
10 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding&WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:702:18)
11 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:285:5)
12 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1016:15)
13 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:958:9)
14 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:874:5)
18 _invoke (dart:ui/hooks.dart:236:10)
19 _drawFrame (dart:ui/hooks.dart:194:3)
(elided 3 frames from package dart:async)

自由度差的远

1 无法设置宽高,
2 无法设置弹出位置,只能在顶部弹出。
3 四个方向的偏移

菜单栏 会一直超过灰色区域是什么问题

simulator: iphone x

左边菜单栏和邮编菜单栏 下拉的时候 有的时候会正常, 但是大多数的时候 在灰色区域会看得见下面的菜单选项。

还有就是 菜单收起来的时候,灰色区域没有了,菜单还是会在不会消失。

img_2199
img_2200
img_2201

动态设置选中项

我需要在 切换到循环时,显示菜单,如果之前已经选择过菜单,切换之后选中项会一直选中,请问这个如何动态设置选中项?
image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.