【问题标题】:Android Styling/Theming of just Search Dialog仅搜索对话框的 Android 样式/主题
【发布时间】:2011-09-25 17:26:44
【问题描述】:

tl;dr:搜索对话框拾取应用主题中的白色文本样式,使搜索文本不可见。

我正在努力解决看似微不足道的问题。

我的应用使用深色背景,我使用 #EEEEEE 将文本颜色调整为比标准灰色更亮。

我已经实现了一个搜索对话框(Honeycomb 之前的版本),它运行良好,但搜索对话框中的文本选择了相同的 #EEEEEE,因此它基本上是不可见的。甚至当我长按搜索文本时显示的上下文菜单也会选择#EEEEEE,因此那里的文本也是不可见的。

我的头发都快掉光了。

风格:

<style name="master" paret="@android:style/Theme.NoTitleBar">
    <item name="android:textColor">#EEEEEE</item>
    <item name="android:windowNoTitle">true</item>        
</style>

清单:

<application android:icon="@drawable/icon"
             android:label="@string/app_label"
             android:theme="@style/master"
             android:hardwareAccelerated="true"
             android:debuggable="true"> 

【问题讨论】:

  • 对 textColor 使用不同的颜色?
  • 嘿@YashwanthKumar,我想在我的应用程序中使用浅色,在搜索对话框中使用深色。我已经看到了这一切,只是无法弄清楚自己该怎么做。

标签: android android-searchmanager android-theme


【解决方案1】:

android:textColor 属性不打算在主题样式中使用,它主要用于小部件和文本外观样式。

如果您想通过主题更改常规文本颜色,请改用android:textColor* 系列属性。它们的数量不少,不同的 View 使用它们的方式也不同,因此需要进行一些实验(或仔细研究 Android 源代码)才能搞定。 android.R.attr 文档将它们全部列出。查找以textColor... 开头的属性。

为了让你开始,试试这个主题,它会表现得更好,完全不影响搜索对话框的颜色,这似乎是你想要的。顺便说一句,您不需要在您的主题中将 android:windowNoTitle 设置为 true,因为您的父主题已经这样做了:

<style name="master" parent="@android:style/Theme.NoTitleBar">
    <item name="android:textColorPrimary">#EEEEEE</item>
    <item name="android:textColorSecondary">#EEEEEE</item>
    <item name="android:textColorTertiary">#EEEEEE</item>
</style>

【讨论】:

  • 是的!我将为我的长子命名,马丁。
  • 我也一样!同样的问题,非常感谢您的帮助。
【解决方案2】:

我遇到了和你一样的问题。我四处寻找解决方案,但似乎您无法更改对话框的 textColor 。我的解决方案是根据本教程创建一个自定义对话框:http://blog.androgames.net/10/custom-android-dialog/

我在 Android 源代码的基础上对其进行了很多扩展,始终使用相同的方法名称等以使其更容易一些。

这并不理想,但据我所知这是最好的选择......

编辑:对于您的问题,可能有一个更简单的解决方案:不要将 textColor 放入主题中,而是将其放入样式中。我不知道你是如何设计你的应用程序的,但我通常会创建一个“主风格”,所有其他人都继承自(直接或间接)。然后你可以把 textColor 放在那里,这样你所有的标准对话框仍然有标准的 textColor。

【讨论】:

    猜你喜欢
    • 2016-05-29
    • 2010-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-21
    • 2011-07-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多