仅搜索对话框的 Android 样式/主题

标签 android android-searchmanager android-theme

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

我正在为看似微不足道的问题而苦苦挣扎。

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

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

我的头发都快掉光了。

风格:

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

list :

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

最佳答案

属性 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>

关于仅搜索对话框的 Android 样式/主题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7547226/

相关文章:

Android:AutoCompleteTextView - 如何自定义排序顺序

android - 为什么这个 Horizo​​ntalScrollView 不填充父级?

ActionBar 上的 Android SearchView,检测点击搜索

java - 这个怎么修??总是要求更改构造函数 --> mAdapter = new TabsPagerAdapter(getFragmentManager());

Android:如何检测点击自定义 SearchView 元素

java - 如何以编程方式隐藏或抑制搜索建议列表?

Android Material 主题 alpha 颜色问题

android - 没有标题栏 Android 主题

android - 更改 Material 组件样式属性失败

Android 在 addTextChangedListener (edittext) 的某些情况下禁用正面按钮