使用android.support.v7.app.AlertDialog

时间:2015-05-29 05:53:53

标签: android alertdialog appcompat-v7-r22.1

我最近在我的应用中切换AlertDialog个实例以使用android.support.v7.app.AlertDialog,但在将自定义主题和样式应用于警告对话框时出现问题。

在我的 styles.xml 中,我有以下样式:

<style name="AlertDialog" parent="Theme.AppCompat.Dialog.Alert">
    <item name="colorAccent">@color/theme_accent_1</item>
    <item name="background">@color/theme_component_background</item>
    <item name="android:background">@color/theme_component_background</item>
</style>

在我的 themes.xml 中,我根据需要在主题中设置了以下内容:

<item name="android:alertDialogTheme">@style/AlertDialog</item>

由于某些原因,自定义样式永远不会应用于AlertDialog个实例,并且它们仍然是默认的Theme.AppCompat.Dialog.Alert主题。

如果我明确设置样式资源使用如下,它确实有效:

AlertDialog.Builder builder = 
    new AlertDialog.Builder(getActivity(), R.style.AlertDialog);

是否无法在整个主题中设置默认样式,而无需在Builder构造函数中指定主题?

1 个答案:

答案 0 :(得分:7)

根据Pankaj Kumar的回复,该链接详细说明了解决方案,即使用和不使用&#34; android:&#34; name属性中的前缀。

<item name="android:alertDialogTheme">@style/AlertDialog</item>
<item name="alertDialogTheme">@style/AlertDialog</item>