2012-07-19 53 views
2

我有一個自定義可繪製的listSelection。當我選擇一個項目時,它會被選中。但是當我滾動瀏覽其他項目(向上/向下滾動)時,背景會閃爍,有時也會消失。ListView項列表選擇器可繪製閃爍

我包括我的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> 

繪製佈局: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和爲了身高也是如此。

有什麼建議嗎?在您的列表視圖屬性

回答

1

//嘗試爲

android:cacheColorHint = "#00000000" 

android:cacheColorHint="@android:color/transparent" 

在Java代碼中,你應該使用

listView.setCacheColorHint(Color.TRANSPARENT); 
+0

讓我檢查... – Debopam 2012-07-19 09:30:23

+0

不.. .. @Padma Kumar。它不工作。 – Debopam 2012-07-19 09:34:56

+0

@Debopam檢查這個http://stackoverflow.com/q/283​​3057/1012284 – 2012-07-19 09:42:26

0

在您的列表視圖試試這個:

android:listSelector="@android:color/transparent" 
android:cacheColorHint="#00000000" 
android:focusable="false" 
android:focusableInTouchMode="false" 
+0

我的ListView必須有一個listSelector Drawable ... – Debopam 2012-07-19 11:14:50

0

不知道你是否得到了答案,但我們曾經有過類似的問題。我們在我們的列表項的佈局文件中設置外部元件上的背景固定它:

listitem.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:background="@drawable/listselector" 
...> 
.... 
</RelativeLayout> 

,然後繪製.. 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文件爲按下,選定和正常狀態設置值,如果您願意,可以將顏色更改爲其他繪圖的顏色。似乎解決了我們遇到的奇怪的背景閃爍問題。