From 8f5f20ee0c2e0170428f32c6c2ef67d03d137d3b Mon Sep 17 00:00:00 2001 From: LiJianGe Date: Wed, 12 Sep 2018 11:57:18 +0800 Subject: [PATCH] =?UTF-8?q?fix=20issue=20#3=20=E5=88=97=E8=A1=A8=E9=A1=B9?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=82=B9=E5=87=BB=E8=B7=B3=E8=BD=AC=E5=88=B0?= =?UTF-8?q?=E5=85=B6=E4=BB=96=E9=A1=B5=E9=9D=A2=E4=B9=8B=E5=90=8E=E5=9B=9E?= =?UTF-8?q?=E6=9D=A5,=20=E4=B8=8B=E6=8B=89=E8=8F=9C=E5=8D=95=E5=B0=B1?= =?UTF-8?q?=E4=B8=8D=E4=BC=9A=E5=BC=B9=E5=87=BA=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 原因: 跳转到其他页面的时候会重复调用 didChangeDependencies , 导致添加多个 listener , 回到页面之后点击时会重复触发点击事件, 开启 => 关闭 --- lib/drapdown_common.dart | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/lib/drapdown_common.dart b/lib/drapdown_common.dart index b61be4b..07b6b8b 100644 --- a/lib/drapdown_common.dart +++ b/lib/drapdown_common.dart @@ -1,5 +1,5 @@ -import 'package:flutter/widgets.dart'; import 'package:flutter/foundation.dart'; +import 'package:flutter/widgets.dart'; enum DropdownEvent { // the menu will hide @@ -158,14 +158,16 @@ abstract class DropdownState extends State { @override void didChangeDependencies() { - if (widget.controller == null) { - controller = DefaultDropdownMenuController.of(context); - } else { - controller = widget.controller; - } + if (controller == null) { + if (widget.controller == null) { + controller = DefaultDropdownMenuController.of(context); + } else { + controller = widget.controller; + } - if (controller != null) { - controller.addListener(_onController); + if (controller != null) { + controller.addListener(_onController); + } } super.didChangeDependencies(); }