ssummeraw
ssummeraw
采纳率73%
2013-03-01 03:29

创建一个自定义的 ListView selector

已采纳

当我点击一个 listview item 时,为什么没有 selector 出现?
帖下我的代码:
ListView:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/streamRelativeLayout">
    <ListView android:layout_height="fill_parent" android:layout_width="fill_parent" android:id="@+id/streamListView" android:cacheColorHint="#00000000" android:fadingEdge="none" android:listSelector="@drawable/swipeview_list_selector">   </ListView>
    <TextView android:layout_centerInParent="true" android:layout_height="wrap_content" android:id="@+id/noStreamTextView" android:layout_width="wrap_content" android:text="No Stream Available" android:visibility="invisible"></TextView>
    <ProgressBar android:layout_centerInParent="true" android:layout_height="wrap_content" android:id="@+id/streamProgressBar" android:layout_width="wrap_content"></ProgressBar>
</RelativeLayout>

my selector:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:state_enabled="false" android:state_focused="true"
        android:drawable="@drawable/stocks_gradient" />
  <item android:state_pressed="true"
        android:drawable="@drawable/stocks_gradient" />
  <item android:state_focused="true"
        android:drawable="@drawable/stocks_gradient" />
</selector>

gradient:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <gradient 
        android:startColor="#ECECEC"
        android:centerColor="#F6F6F4"
        android:endColor="#F8F8F6"
        android:angle="90"
        android:dither="true"
     />
</shape>

我同时也在 getView()里设置了颜色转换

int colorPos = position % colors.length;
            v.setBackgroundColor(colors[colorPos]);
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

2条回答

  • Baby_Bonnie Baby_Bonnie 8年前

    需要设置 selectorontop 属性为 true

    点赞 评论 复制链接分享
  • CSDN_Ask 问答小助手 8年前

    如果 selected item 没有按照你的意思显示出来,那是因为丢失了 state_selected 案例:

    <item android:state_selected="true" android:drawable="..."/>
    
    点赞 评论 复制链接分享

相关推荐