Flutter 当应用程序打开时,创建一个颤振警报对话框

Flutter 当应用程序打开时,创建一个颤振警报对话框,flutter,shake,flutter-alertdialog,Flutter,Shake,Flutter Alertdialog,因此,我希望我的Flitter应用程序在应用程序打开时立即创建一个alertdialog,并在我摇晃手机时使其崩溃。我如何创建它?我不会给出确切的解决方案,但我会尝试指导您 函数用于打开模式对话框 您可以使用的内部方法在开始时调用showDialog(当您的页面第一次生成时) 有一种检测手机震动的方法 当检测到震动时,应该检查对话框是否打开(可能存储了一些标志),如果打开了,则调用Navigator.of(context.pop()关闭它 UPD:好的,解决方案来了: 类MyHomePage扩展

因此,我希望我的Flitter应用程序在应用程序打开时立即创建一个alertdialog,并在我摇晃手机时使其崩溃。我如何创建它?

我不会给出确切的解决方案,但我会尝试指导您

函数用于打开模式对话框

您可以使用的内部方法在开始时调用showDialog(当您的页面第一次生成时)

有一种检测手机震动的方法

当检测到震动时,应该检查对话框是否打开(可能存储了一些标志),如果打开了,则调用
Navigator.of(context.pop()关闭它

UPD:好的,解决方案来了:

类MyHomePage扩展StatefulWidget{
@凌驾
_MyHomePageState createState()=>\u MyHomePageState();
}
类_MyHomePageState扩展状态{
振动检测器;
bool dialogOpened=true;
@凌驾
void initState(){
WidgetsBinding.instance.addPostFrameCallback((){
显示对话框(
上下文:上下文,
生成器:(cxt)=>AlertDialog(内容:文本(“摇动关闭”),
).然后(()=>DialogOpen=false);
});
检测器=ShakeDetector.autoStart(
onPhoneShake:(){
如果(对话框已打开){
Navigator.of(context.pop();
}
检测器?停止监听();
检测器=零;
}
);
super.initState();
}
@凌驾
无效处置(){
检测器?停止监听();
super.dispose();
}
@凌驾
小部件生成(BuildContext上下文){…}
}

另外,在pubspec.yaml中的Dependences中添加
shake\u事件:^0.0.4

我不明白为什么你不给我问题的确切解决方案。我知道你提到的大多数组件,我在这里询问之前已经尝试了很多次,但没有主题正确,所以我来这里询问一个问题solution@MohamedEldereny因为你的问题看起来像你什么都没试过,所以被否决了。虽然您想要实现的并不难。@MohamedEldereny好的,解决方案来了。如果答案对你有帮助,请投票/接受。