dart - 将 onTap 监听器添加到 appBar (Flutter)
问题描述
我们需要将 onTap 监听器添加到 appBar。不是一个actions
或leading
按钮。我们所有的 appBar 都需要它。我试过用InkWell
,但它有视觉效果,我们不需要它。我尝试使用GestureDetector
,但它仅在用户点击此中的文本时才有效GestureDetector
。
解决方案
有几种方法可以做到这一点 。我认为创建自定义应用栏是一个好方法
例子 :
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);
}
推荐阅读
- javascript - 在 CSS 包装器中添加指向另一个页面的图像的超链接
- javascript - Node.js - PostgreSQL (pg):客户端已经连接。您不能重用客户端
- reactjs - 默认值未在反应中清除
- r - 您可以添加注释并保存在 R 闪亮的应用程序中吗
- c# - 已部署的 Bot 正在使用模拟器,但不在网络聊天中
- java - RecycleView 不显示任何数据
- oauth - 如何通过 API 在 keycloak 中忘记密码
- excel - 根据文本在查询中查找匹配值
- python - 使用 plt.savefig 保存图像,但图像都是白色的
- google-cloud-platform - 无法为 Cloud Run 和 Compute Engine 使用无服务器 VPC 访问