不少用 iOS 的小伙伴都用过该功能:git
微信聊天窗口,长按某一条消息,弹出弹框,选择「复制、转发...」等等。github
基于这个需求,我封装了一个 「WPopupMenu」。微信
话很少说,先上图:markdown
仍是老样子,咱们先来看构造函数:函数
WPopupMenu({
@required this.onValueChanged,
@required this.actions,
@required this.child,
this.pressType = PressType.longPress,
this.pageMaxChildCount = 5,
}) : assert(onValueChanged != null),
assert(actions != null && actions.length > 0),
assert(child != null);
复制代码
解释一下参数:ui
直接在须要使用该控件的地方套上,就能使用了,简单代码以下:this
WPopupMenu(
onValueChanged: (int value) {
/// showSnackBar
},
actions: actions,
child: Container(
/// 省略...
),
),
复制代码
代码文件名叫:「widget_w_popup_menu.dart
」,spa
具体 Demo 在:「popup_route_page.dart
」。3d
后面我会出一篇关于该组件的封装逻辑,敬请期待。code
关于该组件,还有几处未完善:
完整代码已经传至GitHub:github.com/wanglu1209/…