我最近在我的应用中切换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
构造函数中指定主题?
答案 0 :(得分:7)
根据Pankaj Kumar的回复,该链接详细说明了解决方案,即使用和不使用&#34; android:&#34; name属性中的前缀。
<item name="android:alertDialogTheme">@style/AlertDialog</item>
<item name="alertDialogTheme">@style/AlertDialog</item>