- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我的主要偏好设置为 "@android:style/Theme.Light"
。我的偏好之一是 DialogPreference,它的 Dialog 包含一个 ListView。 ListView 的对话框是深灰色的(因为 DialogPreference 使用创建深灰色对话框的 AlertBuilder)并且列表中的文本是黑色的(因为 Theme.Light 导致 listViews 有黑色文本)。有没有一种简单的方法可以让 ListView 以与深色对话框相同的样式运行?或者让深色对话框的行为与浅色 Activity 的风格相同?
编辑:
根据 Merlin 的评论,看来我应该尝试做的是创建一个 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>
这两次尝试都失败了,因为它们使用了非公共(public)属性。关于如何创建 LightDialog 主题有什么建议吗?
最佳答案
您可以在 Android 中创建样式时继承默认主题。
请阅读 Applying Styles and Themes 上的文档特别是关于继承的部分
您应该能够使用 Theme.light 并更正您遇到的任何问题。
您可能会发现不同的供应商会更改其设备上的主题,因此如果您的目标是广泛的硬件,那么您最好创建一个完整的主题以确保您的应用在所有平台上保持一致。
更新
如本回答中所述 Consistent UI color in all Android devices有公共(public)和非公共(public)属性。答案提供了指向公共(public)属性列表的链接,但是 kernel.org 仍处于关闭状态,因此您需要挖掘 core/res/res/values/public.xml 的源代码。
关于Android:DialogPreference 颜色/样式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5681398/
我有一个 DialogPreference。我想设置它的对话框标题 (setTitle()),但它不起作用。 我的代码: public class RestoreDefaultApperanceDia
我想要完成的事情:在 DialogPreference 显示的消息文本中创建一个可点击的超链接。 到目前为止我的解决方案:关注此主题:link ,我完成了在 DialogPreference 中显示的
我正在尝试创建自定义对话框首选项,它将包含带有两个单选按钮和一个编辑文本的单选组。如果我写类似 尝试创建包含此对话框首选项的 PreferenceActivity 时应用程序中断。 我想我必须将 D
我在我的 Android 应用程序中创建了一个自定义对话框首选项,但我无法弄清楚如何让显示的对话框跨越显示器的整个宽度。 image of dialog with too much space on
我正尝试按如下方式创建对话框首选项 但是当 Activity 运行时它强制关闭并出现以下错误 11-01 01:21:18.820: E/AndroidRuntime(19644): java.la
我有一个这样定义的类 public class MyDialog extends DialogPreference { 并在 preference.xml 中 我的问题是如何以编程方式启动 MyDi
我创建了扩展 DialogPreference 的新 TimeDialogPreference。 在 preferences.xml 我有: 如何从 TimeDialogPreference 类访问
我想在第一次启动应用程序时打开一些首选项(通过扩展 DialogPreference 创建)。此外,这些首选项用作通常的首选项。 有没有办法做到这一点? 编辑: 我有我的自定义偏好,如下所示: pub
我正在开发自定义 DialogPreference。 当用户在对话框外单击时,它会被取消,我需要避免这种情况。 我知道 Dialog 有方法 setCanceledOnTouchOutside(boo
我有一个自定义的 DialogPreference,它只包含一个日期选择器。一切正常,除了对话框有一个巨大的边框和标题,如下所示。 我希望对话框只是日期选择器: 我已经想出了如何通过将窗口标题设置为
我的首选项 Activity 中有一个对话框,定义如下(布局在 xml 中定义): public class DialogPreference extends android.preference.D
我在我的程序中使用 DialogPreference,现在我想使用 DialogPreference 在单击 OK 按钮时重定向到网页。 Preferences.xml:- TimePicke
我根据 this link. 的回答创建了自定义首选项对话框 现在我想在我的 ActivityPreferenceScreen Activity 类中的那个按钮上单击事件。我怎样才能做到这一点? 最佳
我希望我的程序存储远程服务的凭据,这样用户只需在首选项中设置一次就再也不会这样做了。 因此,我将 DialogPreference 子类化,我的类显示了一个漂亮的对话框,其中包含两个用于登录和密码的字
我目前有一个扩展 DialogPreference 的自定义 Dialog 类(这当然是 PreferenceScreen 的一部分)。 此对话框具有处理保存和取消的自定义按钮。因此,我想去掉标准的“
我正在尝试在首选项布局中实现 DialogPreference。不幸的是,下面的代码总是导致强制关闭。 EditTextPreferences 运行良好,但我需要一个简单的对话框。有什么建议吗? 最
尝试编写自定义对话框首选项(NumberPickerDialog)。尽管 android 文档详细介绍了这个主题,但我似乎错过了他们文档中的一些基本构建 block 。 到目前为止,我所拥有的是一个显
我有一个用于 SeekBar 的自定义 DialogPreference。我覆盖 style="@style/Theme.Putio.Dialog" 并从 XML 扩展布局。 问题是,生成的对话框使用
我有一个 DialogPreference,我想避免用户在按“确定”、“取消”等键时关闭它。 我应该怎么做? 编辑: 我试图在创建对话框时触及“确定”按钮以禁用它。但是我做不到:( 最佳答案 解决方法
在我的应用程序中,我使用 Theme.Holo 和 Theme.Holo.Light 没有任何问题。当使用 Holo 主题并且我单击 DialogPreference/ListPreference 时
我是一名优秀的程序员,十分优秀!