其他分享
首页 > 其他分享> > Android样式/仅搜索对话框的主题

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

作者:互联网

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

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

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

我已经实现了一个搜索对话框(pre-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"> 

解决方法:

android:textColor属性并不意味着在主题样式中使用,它主要用于窗口小部件和文本外观样式.

如果要通过主题更改常规文本颜色,请使用android:textColor *属性系列.它们中有不少,不同的视图使用它们不同,因此需要进行一些实验(或仔细研究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,android-searchmanager,android-theme
来源: https://codeday.me/bug/20190902/1794319.html