2
我想要有一個ListView,它將顯示給定顏色的每一行,具體取決於該行的內容,但仍允許選擇器繪製。就像現在一樣,如果我在一行上調用View.setBackgroundColor,它會正確着色背景,但選擇器不會被繪製。着色ListView行取決於內容
我想要有一個ListView,它將顯示給定顏色的每一行,具體取決於該行的內容,但仍允許選擇器繪製。就像現在一樣,如果我在一行上調用View.setBackgroundColor,它會正確着色背景,但選擇器不會被繪製。着色ListView行取決於內容
您有三個主要選項。
一種方法是使用android:drawSelectorOnTop="true"
並將ListView
的選擇器設置爲透明/半透明的,因此當它在一行的頂部繪製時,仍然可以看到行內容。
或者,你將需要不設置行背景的顏色,但是到StateListDrawable
,其中當選擇該行的背景色設置爲透明的,所以經常選擇(畫背後行)是可見的。
我們也歡迎您註冊ListView
的選擇監聽器,並根據選擇更改的時間進行自定義顏色更改。
我試過使用android:drawSelectorOnTop =「true」,但它最終繪製了整個視圖。 我也試過使用StateListDrawable,但是當選中一行並且繪製狀態發生變化時,它最終會去除類似行上的背景。 也許這是因爲我使用複雜的視圖,有多個文本視圖和複選框,而不是簡單的TextView,我已經看到這些方法的工作。 – cmccurdy 2010-08-17 00:04:42
「我嘗試過使用android:drawSelectorOnTop =」true「,但它最終繪製了整個View。」 - 正如我在回答中所指出的那樣,這就是爲什麼它必須透明/半透明。 – CommonsWare 2010-08-17 04:34:18
以爲我昨天曾嘗試過,但顯然今天起作用。謝謝您的幫助。 – cmccurdy 2010-08-17 13:40:36