Java 在listview行中添加多个可单击区域
我想为具有两个单击区域的listview实现一行,其中有一些特殊要求: 我想要实现的是: 使用以下命令,单击配置:Java 在listview行中添加多个可单击区域,java,android,xml,listview,Java,Android,Xml,Listview,我想为具有两个单击区域的listview实现一行,其中有一些特殊要求: 我想要实现的是: 使用以下命令,单击配置: 红色区域链接用户配置文件 蓝色区域链接项目详细信息 单击黄色区域将被忽略 单击蓝色区域时,选中所有行(如背景=?attr/selectableItemBackground) 我已经尝试了几种配置,但没有获得所有要点: 配置A:在蓝色容器上添加一个clicklistener,在红色容器上添加另一个clicklistener,效果很好,但单击蓝色区域时缺少整行选定效果 配置B:在
- 红色区域链接用户配置文件
- 蓝色区域链接项目详细信息
- 单击黄色区域将被忽略
- 单击蓝色区域时,选中所有行(如背景=
)?attr/selectableItemBackground
注意:还尝试在黄色容器上使用带有空单击侦听器的配置B。但是添加clickListener来忽略它听起来很奇怪,我的真实视图比这更复杂,我应该添加很多空的clickListener。理想的行为应该是使用蓝色容器将其单击状态传播到行视图,这样A就可以工作了,但您想去掉按下的颜色吗?如果是这样,请将其添加到ListView XML中
<ListView
android:cacheColorHint="#00000000"
android:listSelector="@android:color/transparent"
/>
您应该实现一个包含两个子版面的版面,其中一个子版面包含化身,另一个子版面包含您的数据,在Adapter类中,您应该添加具有特定布局id的标记,并为该布局添加OnClickListener,然后在单击布局时,您获得了标记,并且基于该标记,您可以在ListView项中处理视图。您可以使用A或B,只需使用minor加成
A:
调用listview方法void setItemsCanFocus(false)
,这样当您单击蓝色部分时,整行将获得焦点
B:
在自定义适配器或基本适配器中重写isEnabled()
方法,并为黄色部分返回false
。这将阻止单击黄色零件的事件
我希望你的错误会得到纠正
谢谢将单击侦听器添加到适配器并在“活动”中进行回调。