C# AlertDialog在Android/Mono上看起来很奇怪

C# AlertDialog在Android/Mono上看起来很奇怪,c#,android,mono,xamarin.android,C#,Android,Mono,Xamarin.android,我正在使用此代码显示有关网络错误的AlertDialog: var builder = new AlertDialog.Builder(this); builder.SetMessage(error); builder.SetCancelable(false); builder.SetPositiveButton("OK", delegate { }); builder.Show(); 但是,它看起来是这样的: 问题: 当前视图不显示在alertdialog后面,它只是白色的 它与顶部对齐

我正在使用此代码显示有关网络错误的AlertDialog:

var builder = new AlertDialog.Builder(this);
builder.SetMessage(error);

builder.SetCancelable(false);
builder.SetPositiveButton("OK", delegate { });
builder.Show();
但是,它看起来是这样的:

问题:

  • 当前视图不显示在alertdialog后面,它只是白色的
  • 它与顶部对齐,而不是与中心对齐
  • 主题或字体颜色错误,使文本难以阅读
  • 我正在使用Theme.DeviceDefault.Light作为活动的主题:

    [Activity (Label = "xxx", Theme = "@style/MyAppTheme", MainLauncher = true)]
    

    
    
    如何解决这个问题?已尝试将MyAppTheme作为第二个参数插入到
    AlertDialog.Builder(此,Resource.Style.MyAppTheme)
    ,但UI中没有任何更改。

    解决了此问题。使用

    var builder = new AlertDialog.Builder(this, Android.App.AlertDialog.ThemeHoloLight);
    
    而且看起来好多了。我还使用了Activity.ShowDialog()并将我的AlertDialog代码放入其中

    protected override Dialog OnCreateDialog(int id, Bundle args)
    
    我不确定这有什么不同

    好博客帖子:

    protected override Dialog OnCreateDialog(int id, Bundle args)