Xamarin.Android迁移AndroidX:AlertDialog应使用哪个命名空间?
各版本区别
Android.App.AlertDialog.Builder
这是Android原生框架自带的对话框实现,样式完全跟随系统原生设计,不同Android版本(比如Android 5和Android 13)的样式差异很大。它没有向下兼容的增强特性,仅支持对应API级别以上的系统功能,属于比较老旧的实现,现在基本不再推荐使用。Android.Support.V7.App.AlertDialog.Builder
这是旧版Android Support Library v7中的AppCompat组件,当初是为了让低版本Android系统(比如API 11及以下)也能使用Material Design风格的对话框,解决原生对话框样式不统一的问题。但Support Library已经被Google官方废弃,全部迁移到了AndroidX体系下,这个版本后续不会再有更新和维护。AndroidX.AppCompat.App.AlertDialog.Builder
这是AndroidX体系下的AppCompat对话框实现,是上面Support Library v7版本的替代者。它保留了向下兼容的能力,能在几乎所有Android版本上提供统一的Material Design样式,同时会持续接收Google的功能更新和Bug修复,是当前官方主推的版本。
迁移AndroidX后的选择
毫无疑问应该使用AndroidX.AppCompat.App.AlertDialog.Builder,这是AndroidX环境下的标准实现,既保证了样式统一和向下兼容,也能获得后续的官方支持。另外两个版本要么样式不统一、无兼容能力,要么已经被废弃,都不适合在迁移后的项目中继续使用。
内容的提问来源于stack exchange,提问作者Drake

