【发布时间】:2020-09-19 18:03:53
【问题描述】:
我想在没有上下文的情况下显示对话和 Toast 消息,因为我从一个没有上下文访问权限的方法调用它们。我发现get 库是合适的。它提到“您可以在没有上下文的情况下从代码中的任何位置打开对话框”,但是当我将示例中的任何简单代码放入我的应用程序代码中时,我得到了错误。这是我的测试代码:
import 'package:get/get.dart';
void main() {
runApp(MyApp());
const oneSec = const Duration(milliseconds: 250);
new Timer.periodic(oneSec, (Timer t) => check());
}
void check() {
if (result == PI) { //global variables
//showDialogue();
//Get.snackbar('Hi', 'i am a modern snackbar');//error
Get.dialog(SimpleDialog());//error
}
}
void showDialogue(){
}
错误:
[ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: NoSuchMethodError: The getter 'overlay' was called on null.
E/flutter (29207): Receiver: null
E/flutter (29207): Tried calling: overlay
E/flutter (29207): #0 Object.noSuchMethod (dart:core-patch/object_patch.dart:53:5)
E/flutter (29207): #1 Get.overlayContext (package:get/src/get_main.dart:907:62)
E/flutter (29207): #2 Get.dialog (package:get/src/get_main.dart:225:16)
E/flutter (29207): #3 checkVentilator.<anonymous closure> (package:ventilator/main.dart:82:17)
E/flutter (29207): #4 _rootRunUnary (dart:async/zone.dart:1192:38)
.............................
FlutterToast 库代码在这里运行良好。但是我总是遇到Get 库代码的某种错误。即使这个 Get 代码是从构建为小部件的按钮的 onTapp 函数执行的。我不想使用GetMaterialAPP(),但它会修复这些错误吗?如何解决这个问题并显示简单的对话或 toast?
【问题讨论】: