gpt4 book ai didi

flutter - 如何查看是否有 snackbar 显示?

转载 作者:IT王子 更新时间:2023-10-29 07:16:32 28 4
gpt4 key购买 nike

我正在尝试获取当前的 snackbar (显示一个)以确定它是否与我尝试显示的小吃相同;换句话说,我不想复制零食,但我买不到。

我试图用谷歌搜索它,但没有任何显示,真正让我生气的是当我多次调用 Scaffold.of(context).showSnackBar(sb); 时,它们显示一次显示一个,直到结束。

import 'package:flutter/material.dart';

const sb = SnackBar(
content: Text('the snack bar'),
);
void main() => runApp(MaterialApp(
title: 'Snack bar test',
home: Scaffold(
appBar: AppBar(
title: Text('snack bar demo'),
),
body: Center(
child: MyApp(),
),
),
));

class MyApp extends StatelessWidget {
const MyApp({Key key}) : super(key: key);
@override
Widget build(BuildContext context) {
return RaisedButton(
child: Text('push to test'),
onPressed: () {
// Scaffold.of(context).
Scaffold.of(context).showSnackBar(sb);
},
);
}
}

我想要实现的是这样的:-

if (sb.isShowing()){
//hide or remove it
}

提前致谢。

最佳答案

您可以使用 .close() 事件。它指定 snackbar 的关闭方式。详情 here和下面的示例代码:

   bool _isSnackbarActive = false ;

...
...


_isSnackbarActive = true ;

Scaffold.of(context)
.showSnackBar(SnackBar(content: Text("Title")))
.closed
.then((SnackBarClosedReason reason) {
// snackbar is now closed.
_isSnackbarActive = false ;

});

变量_isSnackbarActive在snackBar显示时设置为true,关闭时设置为false。在您的 onPressed 事件中,只需检查 snackbar 的状态并决定是否显示新的 snackbar。此外,根据您的要求,您可以检查当前 snackbar 上的文字,看看预期的 snackbar 是否与当前 snackbar 相同。

关于flutter - 如何查看是否有 snackbar 显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57210423/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com