
如上图,需要在点击item任何地方都触发事件,然后预览文件。
你可能会觉得只要在ViewHolder的itemView上设置事件就可以了。 结果是,空白的地方并且子view没有占用的地方才能触发事件。
那么如何实现这个需求呢? 我们需要动点歪脑筋。在正常的item布局基础上,我们再添加如下内容:
<View
android:id="@+id/layoutEventArea"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/transparent" />
并且使得layoutEventArea这个view可以覆盖住整个item。并且把背景颜色设成透明。
最后,把事件挂在layoutEventArea上。
listItemViewHolder.layoutEventArea.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mListener.onFileClick(mOriginalFiles, file, position);
}
});
这样一来就解决事件问题了。
本文介绍了一种解决在自定义布局中实现点击事件的方法。通过在item布局中添加一个覆盖整个区域且背景透明的View,并将点击事件绑定到该View上,从而确保点击item的任意位置都能触发事件。

1719

被折叠的 条评论
为什么被折叠?



