在基于Lollipop的手机上使用Kitkat的AlertDialog样式

Sou*_*der 2 android android-alertdialog android-4.2-jelly-bean android-5.0-lollipop

我在基于Lollipop的android手机以及基于Jellybean的android手机上都能完美运行同一应用程序。但是,警报对话框的样式(默认)并不相同,并且该对话框在Lollipop手机中显得难看。

一个简单的例子:

在基于豆形软糖的电话中:

在基于豆形软糖的电话中

在基于棒棒糖的手机中:

在基于棒棒糖的手机中

我可以在基于Lollipop的手机上使用旧版Android OS的警报对话框样式吗?

如何在应用中以编程方式执行此操作?

Roh*_*har 5

如果要将“棒棒糖”对话框插入到您的“棒棒糖”设备中,则必须使用android.support.v7.app.AlertDialog而不是android.app.AlertDialog

AlertDialog.Builder builder = new AlertDialog.Builder(activity);
Run Code Online (Sandbox Code Playgroud)

而且,如果您想在棒棒糖设备中使用Pre-Lollipop AlertDialog,则必须使用以下主题:

  • AlertDialog.THEME_TRADITIONAL
  • AlertDialog.THEME_HOLO_DARK
  • AlertDialog.THEME_HOLO_LIGHT
  • AlertDialog.THEME_DEVICE_DEFAULT_DARK
  • AlertDialog.THEME_DEVICE_DEFAULT_LIGHT

并使用:

AlertDialog.Builder builder = new AlertDialog.Builder(activity, theme);
Run Code Online (Sandbox Code Playgroud)