我想禁用点击Listview项目。一种解决方案是覆盖areAllItemsEnabled()
以始终返回false,并isEnabled()
为特定位置返回false。但是,这会导致特定Listview项周围的分隔线消失。有些人建议areAllItemsEnabled()
返回true,isEnabled()
返回false,但这对我不起作用。我在手动放置分隔线时犹豫不决,因为我需要在项目XML中添加父布局。
有没有办法将Listview项设置为不可点击并仍然保留
答案 0 :(得分:2)
解决方案与您被告知要做的完全相反。
您应该在areAllItemsEnabled()
中返回false,然后删除您对isEnabled()
的覆盖。
它对我很有效,昨天我也在努力解决这个问题。
自areAllItemsEnabled() == false
起,所有项目都无法点击,但会显示分隔符。
答案 1 :(得分:1)
我也有这个问题,但覆盖这些Adapter方法似乎很难看。然后有一个帖子给了我一个想法,这个想法之前已经有效了。在不应点击的观点上,只需拨打view.setOnClickListener(null)
。
Boom,也许这是一种解决方法而不是真正的解决方案,但它确实有效。我必须注意,我以编程方式向ListView
页脚添加了分隔符,因此我引用了分隔符,我只需将OnClickListener
设置为null
。
答案 2 :(得分:0)
在个人View
上,尝试将其设置为无法点击:view.setClickable(false)
。如果这不起作用,请尝试view.setFocusable(false)
。