2010-11-19 45 views
5

我一直在拖網尋找答案几個小時,但我似乎無法找到任何人能夠解決這個問題。Android列表查看與行中的可點擊項目導致問題繼續滾動

我有一個使用自定義適配器的列表視圖。一排看起來像這樣

alt text

名單由數組填補。一切都很好。

現在,我希望ImageView和ToggleButton對點擊作出反應,因此我在適配器中實現了OnClickListener,將項目位置放在每個視圖的標記中,然後將onclicklistener設置爲此。

很好的工作,除了現在我不能使用onListItemClick開始項目的活動!好的,我說,我只是讓相關的佈局在中間使用相同的onclicklistener。很棒。一切都是可點擊的,生活是美好的。

EXCEPT!現在,當我滾動列表時,我不能通過再次拋出「繼續」滾動。這會導致滾動停止,並且我必須再次放棄才能重新開始。看起來onclick-thingy會導致fling-motion被解釋爲tap或其他東西(它不會觸發onClick內的邏輯)。

我知道這只是通過我的HTC Hero上的手機列表來實現的,這個列表與我的應用程序中的佈局和行爲完全相同。這個應用程序甚至似乎有onItemClickListener工作。

那麼我怎樣才能確保列表不斷滾動,仍然能夠點擊togglebutton,listitem和imageview?我一直停留在這個一整天,它讓我頭疼:(

回答

16

另一種快速的搜索之前,我回家了,我碰到這個傳來:

How to fire onListItemClick in Listactivity with buttons in list?

CodeFusionMobile提到設置android:descendantFocusability"blocksDescendants"列表佈局的財產,所以我試圖這樣做。一切都將按目前預計,滾動運作,onListitemClicked作品,點擊ToggleButton作品,點擊ImageView作品。

物權法t以便清楚...在母公司RelativeLayout中,在row.xml的頂部,我添加了

android:descendantFocusability="blocksDescendants"