无法获得IcsSpinner的所需背景

时间:2013-02-04 09:28:51

标签: android spinner actionbarsherlock

这是Spinner代码:

<com.actionbarsherlock.internal.widget.IcsSpinner
    android:id="@+id/mSpinner"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@color/bg_grey" />

bg_grey 是第一张图片中的浅灰色背景。

TextView代码dropdown_text.xml

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/mDropDown"
    android:layout_width="fill_parent"
    android:layout_height="30dp"
    android:background="@android:color/transparent"
    android:padding="2dp"
    android:textColor="@color/text_dark_grey">
</TextView>
活动中的

ArrayAdapter<String> ,Adapter = new ArrayAdapter<String>(mActivity.this, R.layout.dropdown_text, mArray);

Spinner的InActive状态:

enter image description here

这就是我想要的。但是,

Spinner的活跃状态:

enter image description here

为什么DropDown颜色的背景为深灰色。我希望它像第一张图片一样是浅灰色。

谢谢

2 个答案:

答案 0 :(得分:1)

试试这个:

ArrayAdapter<String> adapter = new ArrayAdapter<String>(mActivity.this, R.layout.dropdown_text, mArray){

            @Override
            public View getDropDownView(int position, View convertView,
                    ViewGroup parent) {
                TextView tv =  super.getDropDownView(position, convertView, parent);
                //set your own selector for textview background here
                return tv;
            }

            @Override
            public View getView(int position, View convertView, ViewGroup parent) {

                TextView tv =  super.getView(position, convertView, parent);
                //set your own selector for textview background here
                return tv;
            }

        };

答案 1 :(得分:0)

将textView的背景更改为:

<android:background="@color/bg_grey">

这并不能解释为什么它是深灰色的,但会修复它。

我对ListView有一些类似的问题,其中项目的背景颜色随机变化。当我更改ListView项目的背景颜色时,它们就像我想要的那样停留。对我来说还是一个谜。