我正在尝试创建一个类似于Gmail应用的ListView
,其中每行左侧有一个CheckBox
,以便通过上下文操作栏进行多项选择和操作,同时,允许点击每一行转换到另一个活动。
最初,在添加CheckBox
之前,行会指示他们使用我正在使用的Holo主题中的浅蓝色背景颜色进行选择,并在点击时调用onListItemClick
中的ListFragment
1}} onItemLongClick
{@ 1}}长时间点击。
当我将OnItemLongClickListener
添加到行视图的布局.xml文件中时,背景不再改变颜色,我不再接收点击或长按事件。如果我在我的视图.xml中将CheckBox
添加到顶部android:longClickable="true"
,那么我会再次开始获取长期点击事件。但ViewGroup
没有让我点击活动。并且都不允许背景蓝色选择指示返回。只有android:clickable="true"
本身在触摸时才会提供蓝色背景的视觉触摸指示。
我需要做些什么才能获得正常的视觉选择指示,并点击视图中CheckBox
的{{1}}行上的事件?
以下是我的观点的相关部分.xml:
ListView
答案 0 :(得分:11)
我在这个主题上写了blog post一段时间后你可能会觉得有帮助。实际上,问题是添加可聚焦元素(如CheckBox
或Button
)会禁用单击整个列表项的功能,并且必须禁用它们的可聚焦性。您不应该在主布局中添加任何clickable
标志。
答案 1 :(得分:0)
在CAB中添加复选框时,请将其设为焦点=" false",这将解决只有一次调用onItemCheckedStateChanged的问题。