【发布时间】:2015-11-26 00:55:58
【问题描述】:
我的列表中有一个“单元格”,其中包含图片、文本和一个复选框。这是我的xml
fragment_people_list_item.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android">
// ... more elements
<CheckBox />
</RelativeLayout>
我想区分用户是点击复选框还是点击视图的其余部分。我RecyclerView.OnItemTouchListener的相关部分:
@Override
public boolean onInterceptTouchEvent(RecyclerView recyclerView, MotionEvent e) {
View childView = recyclerView.findChildViewUnder(e.getX(), e.getY());
}
它说findChildViewUnder 找到给定点下的最高视图,这始终是我的RelativeLayout!
我如何知道用户点击(点击)了哪个视图?
【问题讨论】:
-
你应该使用自定义适配器来完成这样的事情。试试这个答案stackoverflow.com/a/13220810/783612。
-
嗯,我可以很容易地附上
OnClickListener或OnCheckedChangeListener。问题是点击一个复选框会做两件事:1.勾选一个复选框本身; 2:进一步传播到我的onInterceptTouchEvent听众 -
并且在我的
onInterceptTouchEvent监听器中,如果点击了复选框,我不想在我的复选框上调用setChecked,反之亦然。有意义吗?
标签: android android-recyclerview