Spinner下拉菜单项颜色(Android)

时间:2012-10-01 20:32:46

标签: android-spinner textcolor

所以我有一个微调器,我成功地改变了所选项目的颜色但是我无法改变下拉菜单中项目的颜色

这是我的 spinner_layout.xml

<?xml version="1.0" encoding="utf-8"?>
<TextView  
   xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent" 
   android:layout_height="wrap_content"
   android:textSize="13sp" 
   android:textColor="#33CCFF"         
/>

这是我的 styles.xml

<resources>
  <style name="AppTheme" parent="android:Theme.Light" >
     <item name="android:spinnerDropDownItemStyle">@style/SpinnerItem.DropDownItem.Color</item>
     <item name="android:spinnerItemStyle">@style/SpinnerItem</item>
  </style>
  <style name="SpinnerItem.DropDownItem.Color" parent="@android:style/Widget.DropDownItem.Spinner">
      <item name="android:textColor">#4FBDE8</item>
  </style>

  <style name="SpinnerItem" parent="@android:style/Widget.TextView.SpinnerItem">
      <item name="android:textColor">#4FBDE8</item>
  </style>
</resources>

我可以用XML方式吗?

2 个答案:

答案 0 :(得分:3)

这是我在另一个stackoverflow线程上找到的解决方案

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

答案 1 :(得分:1)

为微调器指定布局资源文件时,必须将其设置为两个位置。

  1. 声明新的ArrayAdapter

    ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, R.layout.spinner_item, categories);
    
  2. 在数组适配器上设置dropDownViewResource。

    dataAdapter.setDropDownViewResource(R.layout.spinner_item_dropdown);
    
  3. 请注意,已使用了两个不同的布局文件。您可以通过定义样式并在相应布局中将这些样式用作主题,以下列方式自定义视图。

    <style name="SpinnerItem" parent="@android:style/Widget.TextView.SpinnerItem">
        <item name="android:textColor">@color/white</item>
        <item name="android:background">@color/black</item>
    </style>
    
    <style name="SpinnerItem.DropDownItem" parent="@android:style/Widget.DropDownItem.Spinner">
        <item name="android:textColor">@color/black</item>
    </style>
    

    希望这有帮助。