Xamarin窗体显示警报弹出窗口出现2次



我已经创建了Xamarin pcl表单项目,并在用户按下注销按钮时要求确认,它在Android和iOS上都工作正常,但同时我作为Windows UWP项目运行弹出窗口出现2次,我不知道发生了什么。请指导我如何解决此问题。

我在项目中使用的代码下面提到了我的代码。

我已经使用了带有 await 和没有 await 关键字的选项,但没有运气。

var resp = await DisplayAlert("","Are you sure want to Logout?","Yes", "No");
if (resp)
{ 
}

也许用户按下按钮禁食 2 次,我建议你添加一个标志,如下所示:

bool displayFlag = false;
if(!displayFlag)
{
    displayFlag = true;
   var resp = await DisplayAlert("","Are you sure want to Logout?","Yes", "No");
   if(resp)
   {
        //Logout
   }
   displayFlag = false;
}

或者,警报消息可能位于另一个任务中(只是成像(,因此也许这会有所帮助:

Device.BeginInvokeOnMainthread( () => async 
{ 
    await DisplayAlert("","Are you sure want to Logout?","Yes", "No");
});

您正在通过调用 await DisplayAlert 来执行弹出窗口。通过将其存储到变量中,您只是说要从弹出窗口获取输出(是或否(。第二个弹出窗口是因为您将其添加到 if 条件中。你应该这样做:

  Device.BeginInvokeOnMainThread(new Action(async () =>
  {
       if(await DisplayAlert("", "Are you sure want to Logout?", "Yes", "No"))
       {
       }
  }));

希望对您有所帮助!

我刚刚遇到了这个错误,两个答案都对我不起作用。但是,我设法找到了导致它的原因并修复了它。这是由我的应用程序多次调用 LoadApplication() 方法引起的。一次在 OnLaunched(LaunchActivatedEventArgs eventArgs) 方法中,第二次在OnActivated(IActivatedEventArgs args)中,同时应用程序正在运行。

因此,如果人们仍然遇到这种情况,请确保这种情况不会发生。

我遇到了同样的问题。

我多次将事件处理程序 (+=( 绑定到控件,因此警报显示 n 次。

最新更新