3

我有一个自定义 DialogPreference 对话框,其布局设置在 relativelayout 中,其中包含以下内容:

  • 复选框
  • 文本视图
  • 文本域

这在 Android 4.0+ 中很好,因为我们使用的主题是 Theme.Light,所以对话框的背景颜色是白色,而 Checkbox 标签和 textview 的默认文本是黑色。但是,在 2.3.3 中,背景颜色是深灰色,因此很难看到文字……但是主题仍然是 Theme.Light。

我认为为此需要制作一个自定义对话框,因为复选框启用/禁用文本字段。目前,我正在将此对话框的相对布局的背景颜色设置为白色......但我不太喜欢这种解决方案,因为可能存在 2.3.3 上的某些其他手机可能没有白色作为默认对话框的情况背景...

有没有更干净的方法来解决这个问题?

我注意到这个人有同样的问题:Custom Support Dialog Fragment text is wrong color

另一个问题:Android:从 Theme.Light 活动中显示对话框的问题

编辑:附上截图。这是运行 2.3.3 的 LG Optimus 2X 上的样子。在我同事的运行 2.3.3 的三星 Galaxy 上,背景更暗,所以你几乎看不到文字。

在此处输入图像描述

4

1 回答 1

0

您可以在样式文件中制作自定义对话框主题,例如:

less than API 11:

<style name="MyDialogTheme" parent="android:Theme.Light" >

API 11 and forward:

<style name="MyDialogTheme" parent="android:Theme.Holo.Dialog" >

然后在片段对话框中使用“MyDialogTheme”:

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

希望这有帮助。

于 2014-07-01T09:05:18.567 回答