我有一個由自定義ArrayAdapter支持的ListView,其中每個項目都有2個LinearLayouts - 一個是我稱之爲head的,另一個是body - body。 直到用戶點擊該行時,它纔會隱藏(消失)。第二次點擊(在頭上)會隱藏身體。但是,如果用戶點擊身體,它會帶來另一項活動。所有這一切都很好,問題來了:Android - 看中ListView後臺問題
當用戶按下身體時,我想要一個可視化的動作指示,就像常規列表項目按下時閃爍橙色背景一樣。我沒有得到這個默認,因爲(我的理論)onPress事件被截獲的身體的看法,並沒有處理的列表項。
我嘗試的第一件事是在onPress事件中執行body.setBackground('#ff00ff')
(不必介意顏色)。這是行不通的,因爲(我懷疑)通話後沒有重新粉刷。然後我挖了一點點,並決定使用基於背景的<selector/>
。我在drawable
文件夾中定義了body_background.xml
,並將其指定給身體的背景屬性。
在那裏我注意到,只有偶數由列表處理時,背景纔會改變。例如,如果我設置<item android:state_selected="true" android:drawable="@drawable/selected"/>
,那麼當我按下頭部時 - 兩個元素(頭部和身體)的背景都會改變,但是當我按下身體時 - 什麼都沒有。
因此,總結我的問題 - 如果我將自定義onClick處理程序分配給它,我如何更改列表項中的子元素的背景?任何提示將不勝感激