Android:目标 SDK = 21(棒棒糖),但在旧设备上没有完全主题化

Android: Target SDK = 21 (Lollipop), but not Fully Themed on Older Devices

我有一个目标 sdk 为 21 的 android 应用程序。出于某种原因,(特别是)非棒棒糖设备上的 AlertDialogs 显示该设备的 sdk 级别。

EG:在 Lollipop 设备上,警报将显示我想要的方式。 在我的 KitKat 设备上,AlertDialog 显示了 KitKat 主题。

有没有办法强制显示带有 min sdk 的对话框?或者我有办法解决这个问题吗?

谢谢!

从版本 22.1.0 开始,AppCompat 提供了在旧设备上显示 Material 主题对话框的功能。

如果您有 class 扩展 Dialog,请将其更改为扩展 AppCompatDialog

如果您使用 AlertDialog.Builder 创建对话框,请切换到 android.support.v7.app.AlertDialog.Builder

有关详细信息,请参阅 Android Support Library 22.1 博客 post。