微调视图;选择器不工作

时间:2014-02-25 03:19:30

标签: android android-spinner

Spinner xml:

<Spinner
        android:id="@+id/sort_by_spinner"
        android:layout_marginLeft="40dip"
        android:layout_marginRight="40dip"
        android:layout_marginBottom="10dip"
        android:paddingLeft="6dip"
        android:paddingRight="6dip"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_below="@id/title_bar"
        android:drawSelectorOnTop="true"
        android:dropDownSelector="@drawable/spinner_selector"
    />

我尝试使用android:background=...购买自己,使用dropDownSelector,使用和不使用listSelector=...;使用和不使用listItemDropDownSelector=...以及使用drawSelectorOnTop进行所有排列

spinner_selector:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
        android:state_pressed="true">
        <shape android:shape="rectangle">
            <solid android:color="@color/app_tint"/>
        </shape>
    </item>
    <item 
        android:state_selected="true">
        <shape android:shape="rectangle">
            <solid android:color="@color/app_tint"/>
        </shape>
    </item>
</selector>

我总是得到默认的橙色。我已经阅读了很多这方面的帖子;只是不能让它发生。我必须支持v10及以上版本。有什么遗漏?

2 个答案:

答案 0 :(得分:1)

尝试为:

<Spinner         
    android:id="@+id/sort_by_spinner"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="@dimen/space"
    android:background="@drawable/selection_normal"
    android:dropDownSelector="@drawable/list_item_selector"
    android:spinnerMode="dropdown" />

和list_item_selector为

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:state_selected="true" android:drawable="@color/app_tint"></item>
    <item android:state_pressed="true" android:drawable="@color/app_tint"></item>
    <item android:drawable="@color/white"></item>
</selector>

selection_normal是微调器的任何图像,如果不需要,可以忽略它。

<强> [编辑]

要设置突出显示触摸/单击项目的列表行,请执行以下操作:

在spinner的适配器中的getDropDownView而不是getView方法中使用代码设置选择器:

view.setBackgroundResource(R.drawable.list_item_selector)

或使用视图的setBackground方法。

答案 1 :(得分:0)

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"   
  android:drawable="@drawable/audio_selector"/>    
 <item android:drawable="@drawable/launcher" />
</selector>

易于使用的选择器将此文件放在可绘制文件夹中,您还可以在可绘制文件夹中放置图像