3

我想禁用单击 Listview 项目。一种解决方案是覆盖areAllItemsEnabled()以始终返回 false,并isEnabled()为特定位置返回 false。但是,这会导致特定 Listview 项目周围的分隔线消失。一些人建议返回 true forareAllItemsEnabled()和 false for isEnabled(),但这对我不起作用。我对手动放置分隔线犹豫不决,因为我需要将父布局添加到项目 XML。

有没有办法将 Listview 项目设置为不可点击并仍然保留

4

3 回答 3

2

解决方案与您被告知要做的完全相反。您应该返回 falseareAllItemsEnabled()并删除您对isEnabled(). 它对我来说非常有效,昨天我也在努力解决这个问题。

所有项目都将不可点击,areAllItemsEnabled() == false但会出现分隔线。

于 2012-05-24T10:29:41.820 回答
1

我也有这个问题,但覆盖这些适配器方法似乎很难看。然后一个帖子让我想到了一个想法,这个想法以前已经奏效了。在不应点击的视图上,只需调用view.setOnClickListener(null).

繁荣,也许这是一种解决方法,而不是真正的解决方案,但它确实有效。我必须注意,我以编程方式将分隔线添加到ListView页脚,所以我有对分隔线的引用,我可以简单地OnClickListenernull.

于 2017-07-21T10:09:44.487 回答
0

在个人View上,尝试将其设置为不可点击:view.setClickable(false)。如果这不起作用,请尝试view.setFocusable(false).

于 2012-05-18T19:15:53.553 回答