自定义警报对话在Android 4.x上看起来很奇怪

Mil*_*k27 8 android android-alertdialog android-4.4-kitkat

我想在我的Android应用程序中自定义警报对话框,所以我首先更改了应用程序主题的alertDialogTheme属性,如下所示:

RES /值/的themes.xml

<resources>
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <item name="android:alertDialogTheme">@style/AlertDialogTheme</item>
    </style>

    <style name="AlertDialogTheme" parent="Theme.AppCompat.Light.Dialog.Alert"/>
</resources>
Run Code Online (Sandbox Code Playgroud)

只是通过这样做,我没想到对话框看起来与标准不同,因为新主题AlertDialogTheme与其父对象完全相同.它在Android Lollipop上运行正常,但在Android Kitkat中,对话框后面会出现一个白色矩形.这是它的样子:

在此输入图像描述

我做错了吗?也许使用错误的父母?

谢谢!

Joa*_*huk 17

这是因为您使用AlertDialog而不是相对较新的AlertDialogCompat.这个在所有平台上都提供相同的Material Design样式对话框,并且非常鼓励使用它.

要使用它,您必须确保在Gradle文件中依赖项中包含以下行:(

com.android.support:appcompat-v7:24.2.1
这是最新版本.确保通过查看SDK Manager来更新所有软件包).

然后在要显示它的Activity中,您必须android.support.v7.app.AlertDialog完全按照之前的方式导入和使用AlertDialog.Builder.