首页 > 解决方案 > 将 onTap 监听器添加到 appBar (Flutter)

问题描述

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

标签: dartflutter

解决方案


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

例子 :

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);
}

推荐阅读