2 ssummeraw ssummeraw 于 2012.11.30 14:37 提问

Listview 中的ListSelector不能正常运行

我自定义了 listselector方法:

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

在Listview中是这样的:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="@drawable/bg_dasar" >
    <TextView
                android:id="@+id/textView1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="StoreCategory" 
                android:textSize="15sp"
                android:paddingLeft="10dip"
                android:paddingTop="10dip"
                android:paddingRight="10dip"
                android:textColor="@color/textcolor"/>

    <ListView
        android:id="@+id/listView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="10dip"
        android:listSelector="@drawable/listselector">
    </ListView>

我的疑惑是当我不点击listview视图时,列表视图项就不会使用focused state的背景(@drawable/bg_list)。
请求大家的指点,谢谢!

3个回答

nana4ever
nana4ever   2012.11.30 17:43
已采纳

在listselector 改成这样:

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

listview布局中:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="@drawable/bg_dasar" >
    <TextView
                android:id="@+id/textView1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="StoreCategory" 
                android:textSize="15sp"
                android:paddingLeft="10dip"
                android:paddingTop="10dip"
                android:paddingRight="10dip"
                android:textColor="@color/textcolor"/>

    <ListView
        android:id="@+id/listView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="10dip"
        **android:listSelector="@android:color/transparent"**>
    </ListView>

</LinearLayout>

把list selector添加到list item后台中:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="55dip"
    android:orientation="horizontal" 
    android:padding="15dip"
    android:gravity="center_vertical"
    **android:background="@drawable/listselector"**>

    <ImageView
        android:id="@+id/imageViewlogo"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginRight="10dip" />

    <TextView
        android:id="@+id/textViewcategory"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TextView"
        android:textColor="@color/textcolor" 
        android:textSize="15sp"/>

</LinearLayout>
kechanghe0705
kechanghe0705   2012.12.03 10:31

样式没有问题,问题可能是出现在ListViewItem里面有Button,或者EditTExt这种可以获取focus的组件

suannai0314
suannai0314 详细的回答更能得到用户的青睐,而且更容易被采纳哦
接近 5 年之前 回复
cytown
cytown   2012.11.30 14:47
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item 
        android:state_pressed="true"
        android:drawable="@drawable/bg_list_hover"></item>
    <item 
        android:state_focused="true"
        android:drawable="@drawable/bg_list_focus"></item>
    <item 
        android:drawable="@drawable/bg_list"></item>
</selector>
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!