将onTap侦听器添加到appBar(Flutter)

时间:2018-07-13 09:30:43

标签: dart flutter

我们需要将onTap侦听器添加到appBar。不是actionsleading按钮。我们所有的appBar都需要它。 我尝试使用InkWell,但它具有视觉效果,我们不需要它。 我尝试使用GestureDetector,但只有在用户点击此GestureDetector中的文本时,它才有效。

1 个答案:

答案 0 :(得分:1)

有几种方法可以做到这一点。我认为创建自定义应用栏是一个好方法

  

示例:

return Scaffold(
  appBar: CustomAppBar(
    appBar: AppBar(title: Text("hello"),),
    onTap: () {
      print("test");
    },
  ),
  body: Container(),
);

要创建自定义应用栏,您需要实现PreferredsizeWidget

class CustomAppBar extends StatelessWidget implements PreferredSizeWidget {
  final VoidCallback onTap;
  final AppBar appBar;

  const CustomAppBar({Key key, this.onTap,this.appBar}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return  GestureDetector(onTap: onTap,child: appBar);
  }

  // TODO: implement preferredSize
  @override
  Size get preferredSize => new Size.fromHeight(kToolbarHeight);
}