Xamarin表单显示警报消失

本文关键字:消失 显示 表单 Xamarin | 更新日期: 2023-09-27 18:15:40

我正在开发Xamarin Forms应用程序,但我注意到一种奇怪的行为,当我显示警报时,在Android(版本主要大于4.2.2),如果我在警报模式外按下,警报立即消失。有什么办法可以防止这种情况发生吗?我希望警报只在用户选择时消失。

多谢

Xamarin表单显示警报消失

当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!");

用PopupLayout实现你自己的DisplayAlert。

使用ACR用户对话框插件Xamarin by Allan Ritchie