我有一个用Xamarin编写的Android应用程序需要从一个对活动或上下文没有良好访问权限的类进行通知,所以我使用系统警报对话框来显示消息。
在Android 4.4中,会出现弹出窗口,用户必须点击“确定”按钮才能清除它。屏幕的其余部分是暗淡的,用户无法与任何其他UI元素交互,直到清除弹出窗口。这是理想的行为。
在Android 5.0(在Galaxy S6和平板电脑上测试)中,弹出窗口将显示约一秒钟,然后消失,无需任何交互。我做过一些Google和SO搜索无济于事。
private static void ShowSystemAlert(Context context, string message)
{
var dialog = new AlertDialog.Builder(context, Android.Resource.Style.ThemeHoloLightDialog)
.SetNeutralButton("OK", (alertSender, args) => {})
.SetMessage(message)
.Create();
dialog.SetCanceledOnTouchOutside(false);
dialog.Window.SetType(WindowManagerTypes.SystemAlert);
dialog.Show();
dialog.Window.DecorView.SetBackgroundResource(Android.Resource.Color.Transparent); //remove strange small border around dialog
}
如何让弹出窗口像在Android 4.4中一样工作?最佳答案适用于Lollipop,Marshmallow和Nougat。
我也非常感谢您解释为什么会发生这种情况,或者您可以提供任何背景信息。谢谢!
答案 0 :(得分:0)
是xamarin吗?仅使用上下文创建alertdialog,不要使用主题。