2012-05-18 70 views
3

我想禁用點擊列表視圖項目。一種解決方案是覆蓋areAllItemsEnabled()以始終返回false,並且isEnabled()將針對特定位置返回false。但是,這會導致特定Listview項目周圍的分隔線消失。有幾個人建議爲areAllItemsEnabled()返回true,假設爲isEnabled(),但這不適用於我。我不願意手動放置一個分隔線,因爲我需要爲項目XML添加一個父佈局。帶可見分隔條的非可點擊列表視圖項目

有沒有一種方法來設置一個ListView項是不可點擊,並仍然保留

+0

將此行放入代碼中mList.setItemsCanFocus(false); – Aerrow

+0

我在我的列表視圖行中有項目需要關注,聽起來像這樣會禁用它們。 – benkdev

回答

0

在個人View,試圖將其設置爲不可點擊:view.setClickable(false)。如果這不起作用,請嘗試view.setFocusable(false)

1

解決方案與您所要做的完全相反。 您應該在areAllItemsEnabled()中返回false並刪除您的替代isEnabled()。 它對我來說非常合適,我昨天也在爲這個問題而努力。

areAllItemsEnabled() == false以來,所有項目都將不可點擊,但會出現分隔線。

0

我也有這個問題,但覆蓋這些適配器方法似乎很難看。然後有一個帖子給我一個想法,這個想法早已奏效。在不應該點擊的視圖上,請撥打view.setOnClickListener(null)

繁榮,也許這是一個解決方法,而不是一個真正的解決方案,但它的工作原理。我必須注意到,我以編程方式將分隔符添加到ListView頁腳,因此我提到了分隔符,我可以簡單地將OnClickListener設置爲null