Android ListView Header禁用点击

29

我在ListView的BaseAdapter中使用isEnabled来控制哪些行可以被点击。然而,我想要禁用标题的点击事件,但isEnabled无法实现。由于位置0指向第一行,因此无法控制标题的点击。

另一方面,当我使用addHeaderView添加标题时,传递参数(header, null, false),虽然可以生效,但这种方式会导致分割线丢失。如何解决这个问题呢?

有人知道这个问题吗?

1个回答

86

你可以使用 addHeaderView(header, null, false)。对于头部,需要填充一个视图,该视图包含您的标题内容以及下面的分隔符。这个视图就是我用来作为分隔符的。

<View
    android:layout_width="fill_parent"
    android:layout_height="1px"
    android:background="#adaaad" />

43
使用addHeaderView(view, null, false)可以解决问题。 addHeaderView(view)默认为“可选”。 - James Wald
1
这可能会删除列表项分隔符-请参见 http://stackoverflow.com/questions/14367278/issue-with-addheaderview-and-missing-list-separator/14368524#14368524。如果您希望所有ListView项目和标题都无法选择,可以设置`code`listView.setSelector(android.R.color.transparent);`code`。这将保留分隔符。 - M.Q.
3
虽然这是一个老问题,但我想指出,在某些设备上, 默认值是可选的,而在大多数其他设备上则不可选。因此,最好始终使用三个参数的方法。 - Stephane Mathis
addHeaderView(view, null, false) 工作了。非常感谢... - Swap-IOS-Android

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接