gpt4 book ai didi

android - 如何强制关闭 GetX Snackbar?

转载 作者:行者123 更新时间:2023-12-04 23:52:53 27 4
gpt4 key购买 nike

我正在使用 Get.snackbar() 来显示连接到 API 的过程。我不明白如何以编程方式关闭 snackbar ?我有以下代码:

@override
Future<List> getImportantData(String inputData) async {
try {
final token = basicApiAuthString;
print("requesting API with the following request: $inputData");
Get.snackbar(
"Requesting very important data...",
"",
duration: 60.seconds, // it could be any reasonable time, but I set it lo-o-ong
snackPosition: SnackPosition.BOTTOM,
showProgressIndicator: true,
isDismissible: true,
backgroundColor: Colors.lightGreen,
colorText: Colors.white,
);
List importantData = await _client.requestAPI(basicAuthString: token, body: inputData);
.then((importantData) {
// Here I need to dismiss the snackbar I am still showing to user
print("I want to close snackbar here but I don't know how to do that!");
// Then I return data for future processing...
return importantData;
});

return importantData;
} on DioError catch (error) {
// Here I handle all possible API errors... Also I want to close snackbar here as well.

}
} // getImportantData() function.

我需要考虑以下几点:

  1. 应用程序可能在请求期间关闭并再次打开(因此 snackbar 可能已关闭,但我可以通过状态回调知道它(未显示)
  2. 用户在请求期间可能会关闭 snackbar
  3. 请求可能在几毫秒内完成
  4. 可能存在 API 错误,并且 .then() 部分将永远不会被执行。

所以,我需要一些外部方法来关闭零食。 Navigator.of(context).hide... 不是我使用 GetX 的解决方案。

————PS:这里是snackbar的定义,没有帮助我澄清:

https://pub.dev/documentation/get/3.4.2/route_manager/GetNavigation/snackbar.html

最佳答案

GetX 已经有一个名为 closeAllSnackbars()closeCurrentSnackbar() 的方法。

所以使用 closeAllSnackbars() 来关闭所有打开的 Snackbars。

Get.closeAllSnackbars();

要关闭当前 Activity 的 snakbar,只需调用 closeCurrentSnackbar()

Get.closeCurrentSnackbar();

您还可以通过调用 isSnackbarOpen() 来检查 snackbar 是否打开/Activity 。

Get.isSnackbarOpen();

关于android - 如何强制关闭 GetX Snackbar?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69670457/

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