【发布时间】:2015-02-22 23:33:54
【问题描述】:
我有一个包含项目列表的 RecyclerView。每个项目都是一个包含四个文本视图的相对布局。我想做的是能够区分单击了列表项的哪个文本视图,然后基于此执行操作。
我现在正在使用
final GestureDetector mGestureDetector = new GestureDetector(MyShiftsPageFragment.this.getActivity(), new GestureDetector.SimpleOnGestureListener() {
@Override
public boolean onSingleTapUp(MotionEvent e) {
return true;
}
});
shiftList.addOnItemTouchListener(new RecyclerView.OnItemTouchListener() {
@Override
public boolean onInterceptTouchEvent(RecyclerView recyclerView, MotionEvent motionEvent) {
ViewGroup child = (ViewGroup) recyclerView.findChildViewUnder(motionEvent.getX(), motionEvent.getY());
if (child != null && mGestureDetector.onTouchEvent(motionEvent)) {
Log.i(TAG, child.toString());
}
return false;
}
@Override
public void onTouchEvent(RecyclerView recyclerView, MotionEvent motionEvent) {
Log.i(TAG, "TouchEvent");
}
});
但它似乎只找到了RelativeLayout,而不是该布局之上的单个组件。有任何想法吗?或者我应该采取不同的方式来做到这一点?
【问题讨论】:
-
您为什么不在
TextViews上注册OnClickListener或OnTouchListener? -
我会在哪里做呢?在我的适配器的 ViewHolder 类中?
-
"在我的适配器中的 ViewHolder 类中?" -- 当然。
标签: android list touch adapter android-recyclerview