我的listSelection有一个自定义drawable。当我选择一个项目时,它会被选中。但是当我滚动浏览其他项目(向上/向下滚动)时,背景会闪烁,有时它也会消失。
我包括我的xml布局:
的ListView:
<ListView
android:id="@id/listView"
android:layout_width="100dp"
android:layout_height="fill_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:listSelector="@drawable/list_selector"
android:clickable="true"
android:divider="@drawable/separetor_drawable"
android:fastScrollEnabled="true"
android:paddingLeft="15dp"
android:paddingRight="15dp"
android:scrollbars="none" >
</ListView>
drawable layout:list_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<corners android:radius="6dp" />
<solid android:color="@color/grey" />
<size android:width="50dp" />
</shape>
另外,我甚至指定形状宽度自动fill_parent形状,也适用于高度。
有什么建议吗?
答案 0 :(得分:1)
//尝试将listview属性作为
android:cacheColorHint = "#00000000"
或
android:cacheColorHint="@android:color/transparent"
在java代码中,您应该使用
listView.setCacheColorHint(Color.TRANSPARENT);
答案 1 :(得分:0)
在列表视图中尝试此操作:
android:listSelector="@android:color/transparent"
android:cacheColorHint="#00000000"
android:focusable="false"
android:focusableInTouchMode="false"
答案 2 :(得分:0)
不知道你是否得到了答案,但我们一度也有类似的问题。我们通过在listitem的布局文件中设置外部元素的背景来修复它:
listitem.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@drawable/listselector"
...>
....
</RelativeLayout>
然后是drawable .. listselector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@color/blue" />
<item android:state_selected="true" android:state_pressed="false" android:drawable="@color/yellow" />
<item android:state_selected="false" android:state_pressed="false" android:drawable="@color/black" />
</selector>
后台xml文件设置按下,选定和正常状态的值,如果愿意,您可以将颜色更改为其他可绘制的颜色。似乎是为了解决我们遇到的奇怪的背景闪烁问题。