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

我试图从下拉列表中select一个项目后,更改显示在微调button中的单个项目的文本颜色。 我已经仔细阅读Android SDK中的themes.xml和styles.xml一个小时了,我似乎无法findSpinner从哪里获取颜色值。

为了澄清,我不试图改变下拉项目的颜色,我试图改变微调的显示文字的颜色,当没有下拉菜单。 我想你可以把它称为微调的“button”文本。

  • Android:更改活动的背景颜色(主视图)
  • 在焦点/按下TextView颜色更改
  • 如何覆盖特定区域的列表项文字颜色?
  • 生成一个随机颜色的Java
  • 如何以编程方式获取Android上的渐变颜色列表
  • Android:如何更改Datepicker小部件中的dateselect器的颜色?
  • 可以textview有不同颜色的字母?
  • 更改onProgressChanged上的一个seekbar的颜色
  • 我认为这可能是在styles.xml中的这一点

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

    – =编辑= – 结果如下: 在这里输入图像说明

    这是如何完成的:

     <?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中的应用程序标签

     android:theme="@style/MooTheme" 

    是的,凯西是正确的。

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

    styles.xml

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

    然后在你的清单中:

     <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/Theme.NoTitleBar.WithColoredSpinners" > 

    现在所有的纺纱厂外面的文字都是绿色的,下拉的文字是红色的。

    我用另一个简单的技术做了这个,

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

    然后修改以下几行

     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); 

    如:

     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以更改下拉列表的外观。

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

     <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现在包含:

     <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看起来像:

     <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" /> 

    你可以在Spinner对象上使用setOnItemSelectedListener,

     spinnerObject.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) { ((TextView)parentView.getChildAt(0)).setTextColor(Color.rgb(249, 249, 249)); // OR ((TextView)parentView.getChildAt(0)).setTextColor(Color.RED); } }); 

    其实很简单。 我正在寻找你,只需要创build风格,并设置在微调

    首先在Style.xml中创build你的主题

      <style name="spinnerTheme" parent="android:Theme"> <item name="android:textColor">@color/gray_dark</item> </style> 

    然后在你的xml里设置你的微调器添加这个:

    android:theme =“@ style / spinnerTheme

      <Spinner android:id="@+id/spinner" android:layout_width="match_parent" android:layout_height="50dp" android:padding="10dp" android:paddingBottom="5dp" android:paddingLeft="10dp" android:layout_span="3" android:layout_weight="1.3" android:theme="@style/spinnerTheme" android:textSize="12sp" android:spinnerMode="dialog" android:clickable="false"/> 

    享受编码

    我不认为有与文本相关的颜色。 它最有可能在android代码中预定义的,如果你想改变微调器的颜色,可能不得不自己创build。

    这将包括更改ondraw()方法,并绘制微调器如何让它看起来。

    只有我认为可以解决这个问题的是微调的风格属性。

    资料来源: http : //developer.android.com/reference/android/widget/Spinner.html

    这可能有助于:

    http://www.designerandroid.com/?p=28

    这工作对我来说创build自己的布局文件与微调项目的自定义定义。

     custom_spinner.xml: <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/txt_spinner" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="16sp" android:textColor="#ffffff" /> 

    使用适配器更改微调项目

     Spinner spinner= (Spinner) findViewById(R.id.spinner1); ArrayAdapter adapter = ArrayAdapter.createFromResource(this,R.array.by_loc_array,R.layout.txt_spinner); spinner.setAdapter(adapter);