在ListView中挂起listSelector

我使用android:listSelector实现ListView

<style name="ListView" parent="@android:style/Widget.ListView">
    <item name="android:cacheColorHint">@color/transparent</item>
    <item name="android:divider">@drawable/divider</item>
    <item name="android:dividerHeight">1px</item>
    <item name="android:listSelector">@color/red</item>
</style>

选择工作正常,但是当我开始滚动时, listSelector将随机挂在ListView顶部或底部。 我将不胜感激任何帮助。

挂起列表选择器


主要问题是您使用纯色而不是使用Drawable。 这是布局框架的一个缺点,如果你设置纯色,那么就会出现保持问题。

您使用的代码为:

<item name="android:listSelector">@color/red</item>

应该用作:

    <item name="android:listSelector">@drawable/list_view_selector</item> 

上面的书写drawable应该包含在选择器标签中。

这是list_view_selector的代码

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

</selector>

注意:您无法按原样使用纯色。 您必须为每种色调制作选择器,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >

    <gradient
        android:angle="90"
        android:centerColor="#ff0000"
        android:endColor="#ff0000"
        android:startColor="#ff0000" />

</shape>

我在我的最后检查了这个。 完美工作!

链接地址: http://www.djcxy.com/p/64483.html

上一篇: Hanged listSelector in ListView

下一篇: Should i go for WCF or ASMX web service