2012-02-24 69 views
6

我一直在拼命解決這個問題,我的ListView項目突出顯示。我已經回顧了我可以在這裏找到的任何解決方案,並發現沒有爲我工作。如何防止ListView項目黑色高亮

首先,這是LinearLayout中ViewPager的LinearLayout中的ListView。

該列表視圖中的每個項目都是包含LinearLayout(包含TextView)和Gallery的LinearLayout。該庫包含多個在FrameLayout中包含TextView和Imageview的LinearLayout。

發生此問題,不是點擊而是拖動,因爲當您將手指滑過某個故事時(有時ListView與您的拖動滾動時)下方的項目變爲選中狀態。此外,此特定問題僅出現在滾動滾動效果不會導致反彈的設備上。是

想辦法解決這個問題如下:

  • 設置列表選擇背景色在XML(失敗)
  • 設置列表選擇阿爾法#00000000 XML(失敗)
  • 以上,但通過編程
  • 以上但主題
  • 代碼設置選擇爲-1 onListItemClick
  • 去除T他從列表項的背景的LinearLayout(工程於4.0)
  • 設置android:cacheColorHint#00000000(什麼也不做?)

任何幫助,將不勝感激。我只是不知道爲什麼它這樣做,我真的需要它停下來。

Screenshot of ListView Item being HIghlighted

+0

當你添加一個項目到可點擊的列表中時,它禁用了listSelection,我想你可能會濫用這個或者更多地看它。 – Warpzit 2012-02-27 15:45:59

回答

8

這是一個最有趣的問題。其中的解決方案更加有趣。

出於某種原因,我沒有嘗試,也沒有人想到,是從LinearLayout中刪除對於ListView項目的android:background

刪除android:background後,佈局繼續正常顯示,黑色不再出現。

如果您有與此類似,這並不解決問題,你可能要檢查Android的博客:Why is my list black?

編輯:這對於ICS工作得很好,但在2.1引起了更大的問題。爲了完全解決這個考驗,我最終不得不在ListView(和LinearLayout的好處)中指定android:cacheColorHint="#000000",並且在我的內聯樣式中以及在應用於ListView的樣式定義中指定了樣式定義。

+4

事實上,緩存顏色提示必須設置爲「#00000000」,而不是「#000000」 – 2012-07-09 08:07:48