android - 微调 View ;选择器不工作

标签 android android-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

的所有排列

微调器选择器:

<?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 及更高版本。缺少什么?

最佳答案

试试看:

<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 是微调器的任何图像,如果不需要可以忽略它。

[编辑]

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

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

view.setBackgroundResource(R.drawable.list_item_selector)

或者使用 View 的setBackground方法。

关于android - 微调 View ;选择器不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22003903/

相关文章:

java - 以编程方式 android 中 LinearLayout 中微调器和 TextView 的布局对齐

java - 如何在安卓模拟器上读取PDF文件

android - 构造函数 ArrayAdapter<String>(LayoutNext, int, String[]) 未定义

android - 在 viewpager 上显示 fragment

java - 显示 AlertDialog 的方法似乎乱序执行

android - 如何防止 onItemSelected 在新实例化的 Spinner 上触发?

android - 样式 appcompat-v7 工具栏菜单背景

android - 从联系人号码查询联系人缩略图

android - 使用 ImageView 时我的微调器不可见

java - 自定义微调器下拉箭头