6

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

这是我的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 方式?

4

2 回答 2

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>

于 2012-10-29T02:36:33.683 回答
1

在为微调器指定布局资源文件时,您必须在两个地方设置它。

  1. 在声明一个新的 ArrayAdapter 时

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

    dataAdapter.setDropDownViewResource(R.layout.spinner_item_dropdown);
    

请注意,使用了两个不同的布局文件。您可以通过以下方式自定义视图,方法是定义样式并将这些样式用作相应布局中的主题。

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

希望这可以帮助。

于 2016-04-14T06:54:47.070 回答