Xamarin表格显示警报消失

时间:2016-10-31 08:57:46

标签: c# android xamarin.android xamarin.forms

我正在使用Xamarin Forms开发应用程序,但是当我在Android(版本大于4.2.2)中显示警报时,我发现了一个奇怪的行为,如果我在警报模式外按,警报立即消失。有什么方法可以防止这种情况吗?我希望警报仅在用户选择时消失。

非常感谢

2 个答案:

答案 0 :(得分:0)

使用PopupLayout实现您自己的DisplayAlert。

<强> OR

Allan Ritchie

使用ACR User Dialogs Plugin for Xamarin

答案 1 :(得分:0)

当在Android中显示对话框时,单击其外部取消是非常标准的。要更改此行为,您需要在PCL中创建一个界面:

public interface ICustomAlert
{
  void ShowAlert(string message);
}

在你的Android项目中创建实现(类似这样):

  [assembly: Xamarin.Forms.Dependency (typeof (AndroidCustomAlert))]   
  public class AndroidCustomAlert : ICustomAlert
    {
      void ShowAlert(string message)
      {
        var builder = new AlertDialog.Builder(Xamarin.Forms.Forms.Context);
        builder.SetMessage(message);
        builder.SetPositiveButton("OK", (sender, args) => { });
        builder.SetCancelable(false);
        builder.Show();
      }
    }

注意SetCancelable(false)。这就是使得用户无法在警报之外点击并使其消失的原因。

要使用它,请从依赖服务获取ICustomAlert并调用ShowAlert:

DependencyService.Get<ICustomAlert>().ShowAlert("Hello!");