【发布时间】:2011-08-06 14:05:38
【问题描述】:
我的主要偏好活动设置为"@android:style/Theme.Light"。我的偏好之一是 DialogPreference,它的 Dialog 包含一个 ListView。 ListView 的对话框是深灰色的(因为 DialogPreference 使用创建深灰色对话框的 AlertBuilder)并且列表中的文本是黑色的(因为 Theme.Light 导致 listViews 具有黑色文本)。有没有一种简单的方法可以让 ListView 以与深色对话框相同的样式运行?还是让深色对话框与浅色 Activity 具有相同的样式?
编辑:
基于 Merlin 的 cmets,看来我应该尝试创建一个 LightDialog 主题。为了做到这一点,我尝试了: 1. 扩展 android 的 Theme.Light 并从 Theme.Dialog 添加对话属性
<style name="Theme.LightDialog" parent="@android:style/Theme.Light">
<item name="android:windowFrame">@null</item>
<item name="android:windowTitleStyle">@android:style/DialogWindowTitle</item>
<item name="android:windowBackground">@android:drawable/panel_background</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
</style>
... 和 2. 扩展 android 的 Theme.Dialog 并添加来自 Theme.Light 的 lighty 属性。
<style name="Theme.LightDialog" parent="@android:style/Theme.Dialog">
<item name="android:windowBackground">@drawable/screen_background_light</item>
<item name="android:colorBackground">@android:color/background_light</item>
<item name="android:colorForeground">@androidcolor/bright_foreground_light</item>
<item name="android:colorForegroundInverse">@android:color/bright_foreground_light_inverse</item>
<item name="android:textColorPrimary">@android:color/primary_text_light</item>
<item name="android:textColorSecondary">@android:color/secondary_text_light</item>
<item name="android:textColorTertiary">@android:color/tertiary_text_light</item>
<item name="android:textColorPrimaryInverse">@android:color/primary_text_dark</item>
<item name="android:textColorSecondaryInverse">@android:color/secondary_text_dark</item>
<item name="android:textColorTertiaryInverse">@android:color/tertiary_text_dark</item>
<item name="android:textColorPrimaryDisableOnly">@android:color/primary_text_light_disable_only</item>
<item name="android:textColorPrimaryInverseDisableOnly">@android:color/primary_text_dark_disable_only</item>
<item name="android:textColorPrimaryNoDisable">@android:color/primary_text_light_nodisable</item>
<item name="android:textColorSecondaryNoDisable">@android:color/secondary_text_light_nodisable</item>
<item name="android:textColorPrimaryInverseNoDisable">@android:color/primary_text_dark_nodisable</item>
<item name="android:textColorSecondaryInverseNoDisable">@android:color/secondary_text_dark_nodisable</item>
<item name="android:textColorHint">@android:color/hint_foreground_light</item>
<item name="android:textColorHintInverse">@android:color/hint_foreground_dark</item>
</style>
这两次尝试都失败了,因为它们使用了非公共属性。有关如何创建 LightDialog 主题的任何建议?
【问题讨论】:
标签: android