popup_button 0.0.1 copy "popup_button: ^0.0.1" to clipboard
popup_button: ^0.0.1 copied to clipboard

A widget( can be a button) trigger a popup.

和 flutter 提供的 PopupMenuButton 类似,都是 tap 一个 widget 弹出一个popup,但是 PopupButton 可以自定义显示位置。

Features #

  1. 定义 popup 的显示位置,可以在 button的左面,上面,右面 或 下面。
  2. 定义 popup 的对齐方式,start,center,end
  3. button 可以通过 child 属性 定义为任意 widget。
  4. popup 可以通过 builder 方法 返回 任意 widget。

Usage #

Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
          child: PopupButton(
        direction: PopupDirection.bottom,
        offset: Offset.zero,
        child: Container(
          color: Colors.blueAccent,
          width: 50,
          height: 20,
        ),
        builder: (context) {
          return Container(
            color: Colors.green,
            width: 100,
            height: 50,
          );
        },
      )),
    );
  }

direction 定义位置 #

位置 是相对于 button 的。 direction 是 一个 enum ,有四个值 PopupDirection.left,PopupDirection.top,PopupDirection.right,PopupDirection.bottom

align 定义对齐方式 ,默认是居中 #

align 是一个 enum ,有四个值 Align.start, Align.center ,Align.end

offset 定义 偏移 #

direction 和 align 决定好 位置 和对齐后, 如果还想进行微调,可以定义 offset。offset是 相对于 button 的偏移。

比如 Offset(10,20)

  1. PopupDirection.left 的时候, Offset(10,20) 表示向左偏移 10,向下偏移 20
  2. PopupDirection.right 的时候, Offset(10,20) 表示向右偏移 10,向下偏移 20
  3. PopupDirection.top 的时候, Offset(10,20) 表示向右偏移 10,向上偏移 20

Additional information #

PopupButton 相比于 PopupMenuButton 最大的优点就是可以完全自定义 UI 和 位置。

除了直接使用 PopupButton 还可以使用,showPopup 函数。

Future showPopup(
    {required BuildContext context,
    required RelativeRect position,
    required Widget child,
    bool useRootNavigator = false,
    required PopupDirection direction,
    required PopupAlign align})

如果 要退出, 用 pop

Navigator.of(context).pop() 
1
likes
120
points
18
downloads

Publisher

unverified uploader

Weekly Downloads

A widget( can be a button) trigger a popup.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

flutter

More

Packages that depend on popup_button