2011-03-06 97 views
7

我有一個listview和一個自定義適配器。ListView onItemClick有時不響應

在我的列表視圖我設置:

lv.setOnItemClickListener(...)

所有工作正常。但是當我開始滾動它不。當我向下滾動時,它會很穩定(onItemClick被調用),但是當我向下滾動更快或向下滾動快速幾次時,選擇一個項目不會觸發事件。但是如果我等一會兒或者繼續點擊一個項目或者慢慢滾動到頂部,它就會隨機發揮作用。

有時,當我點擊一個項目時,它顯示黃色背景(onItemClick未調用)。 有時甚至在我停止觸摸(並且onItemClick未被調用)之後橙色背景仍然保留。 有時背景根本不會改變(onItemClick未被調用)。 有時它可以工作。

該列表中的項目由幾個textView/imageview/linearlayout(我爲每個focusable設置= false,它沒有改變任何東西)動態膨脹與視圖持有人。

有人有什麼錯誤的想法或有一個想法如何調試它?

(源代碼是太大,不能粘貼在這裏,如果你想我可以給你的源代碼或APK)

+0

你能否提供一些代碼?如果產生它的代碼不能被看到,那麼很難診斷問題。 – Shade 2011-03-06 19:16:21

+0

您是否因任何原因(可選/可點擊/可調焦/啓用)而調整視圖的交互參數?你不應該這樣做,這樣做可能會導致非常奇怪的結果。如果您不能在此處發佈活動代碼,請將其放入像Pastebin之類的東西,或者將代碼放入公共回購站,如Github,以便我們分析它。乾杯。 – Devunwired 2011-03-06 19:26:35

+0

爲快速滾動問題,你可能達到底部/頂部,你在Android 2.2。它在'Scroller'類中有一個錯誤,它不會「停止」滾動,所以你需要等待它「消耗」它的動量或者單擊一次來「停止」它(這不是一個可見的東西),之前能夠點擊內容。它也發生在ScrollViews中。 – bigstones 2011-03-06 19:37:06

回答

2

此行添加到你的列表視圖自定義行xml文件 的android父佈局:descendantFocusability = 「blocksDescendants」

而且 在充氣機(自定義列視圖)佈局的TextView只需要添加:

機器人:可調焦= 「假」 機器人:focusableInTouchMode = 「假」

1

我有類似的問題。我的ListView項目包含一個包含ImageView和TextView的LinearLayout。除了以下爲我的佈局:

android:descendantFocusability="blocksDescendants" 

和我的TextView和ImageView的下面,在另一個答案建議:

android:focusable="false" 
android:focusableInTouchMode="false" 

我還添加了這個這對我的ImageView:

android:clickable="false"