我正在 Xamarin Forms 中开发一个应用程序,但我注意到一个奇怪的行为,当我在 Android(版本高于 4.2.2)中显示警报时,如果我在警报模式之外按下,警报就会消失立即地。有什么办法可以防止这种情况?我希望警报仅在用户选择时消失。
非常感谢
最佳答案
当在 Android 中显示一个对话框时,点击它的外部以取消是非常标准的。要更改此行为,您需要在 PCL 中创建一个接口(interface):
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!");
关于c# - Xamarin Forms 显示警报消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40339059/