首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Android:微调窗口小部件的文本颜色属性隐藏在哪里?

Android:微调窗口小部件的文本颜色属性隐藏在哪里?
EN

Stack Overflow用户
提问于 2011-05-28 09:26:38
回答 6查看 89K关注 0票数 80

在您从下拉菜单中选择一个项目后,我正在尝试更改在微调器按钮中显示的单个项目的文本颜色。我已经仔细阅读了Android SDK中的themes.xml和styles.xml一个小时了,我似乎找不到微调器从哪里获得颜色值。

为了澄清,我并不是要更改下拉项的颜色,而是在没有下拉项的情况下更改微调器显示的文本的颜色。我想你可以把它叫做微调器的“按钮”文本。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-05-28 09:55:50

我想这可能是styles.xml中的一小部分

代码语言:javascript
复制
<style name="Widget.TextView.SpinnerItem">
    <item name="android:textAppearance">@style/TextAppearance.Widget.TextView.SpinnerItem</item>
</style>
<style name="Widget.DropDownItem.Spinner">
    <item name="android:checkMark">?android:attr/listChoiceIndicatorSingle</item>
</style>

-= EDIT =-结果如下:

下面是它是如何完成的:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="MooTheme" parent="android:Theme">
        <item name="android:spinnerItemStyle">@style/MooSpinnerItem</item>
    </style>

    <style name="MooSpinnerItem" parent="android:Widget.TextView.SpinnerItem">
        <item name="android:textAppearance">@style/MooTextAppearanceSpinnerItem</item>
    </style>

    <style name="MooTextAppearanceSpinnerItem" parent="android:TextAppearance.Widget.TextView.SpinnerItem">
        <item name="android:textColor">#F00</item>
    </style>
</resources>

然后,只需将此代码添加到AndroidManifest.xml中的应用程序标记

代码语言:javascript
复制
android:theme="@style/MooTheme"
票数 108
EN

Stack Overflow用户

发布于 2012-02-19 02:15:32

是啊,CaseyB是对的。

下面是我如何设置微调器文本颜色的方法,一个简单的例子:

styles.xml

代码语言:javascript
复制
    <style name="Theme.NoTitleBar.WithColoredSpinners" parent="@android:style/Theme.NoTitleBar">
        <item name="android:spinnerItemStyle">@style/SpinnerItem</item>
        <item name="android:spinnerDropDownItemStyle">@style/SpinnerItem.DropDownItem</item>
    </style>

    <style name="SpinnerItem" parent="@android:style/Widget.TextView.SpinnerItem">
        <item name="android:textColor">#00FF00</item>
    </style>

    <style name="SpinnerItem.DropDownItem" parent="@android:style/Widget.DropDownItem.Spinner">
        <item name="android:textColor">#FF0000</item>
    </style>

</resources>

然后在你的清单中:

代码语言:javascript
复制
<application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/Theme.NoTitleBar.WithColoredSpinners" >

现在,所有微调器外部的文本将为绿色,而下拉列表中的文本将为红色。

票数 53
EN

Stack Overflow用户

发布于 2012-07-18 21:47:01

我使用了另一种简单的技术,

从Android res/layout文件夹复制simple_spinner_item.xml和simple_spinner_dropdown_item.xml,并将它们复制到您的项目中。

然后修改以下几行

代码语言:javascript
复制
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.planets_array, Android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(Android.R.layout.simple_spinner_dropdown_item);
spinnerSubject.setAdapter(adapter);

作为:

代码语言:javascript
复制
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.planets_array, R.layout.simple_spinner_item);
adapter.setDropDownViewResource(R.layout.simple_spinner_dropdown_item);
spinnerSubject.setAdapter(adapter);

剩下的很简单,您现在可以编辑simple_spinner_item.xml以编辑微调器小部件上一个可见项的外观,并编辑simple_spinner_dropdown_item.xml以更改下拉列表的外观。

例如,我的活动布局包含:

代码语言:javascript
复制
<Spinner
android:id="@+id/mo_spinnerSubject"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:background="@drawable/spinnerset_background" />

我的simple_spinner_item.xml现在包含:

代码语言:javascript
复制
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:textColor="@color/custom_white"
android:textSize="16sp" />

simple_spinner_dropdown_item.xml看起来像这样:

代码语言:javascript
复制
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
style="?android:attr/spinnerDropDownItemStyle"
android:layout_width="match_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:background="@color/custom_black"
android:ellipsize="marquee"
android:singleLine="true"
android:textColor="@color/custom_white" />
票数 29
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6159113

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档