0
我正在为我的listView(自定义PinnedSectionListView)侦听onTouch事件,但似乎只有在上下滚动时才注册MotionEvents。我主要需要它来响应水龙头。如果我点击细胞,它什么都不做。Fragment中的onTouch事件只注册滚动
在我OnCreateView
在我的片段,我有以下代码:
mDetector = new GestureDetectorCompat(mContext, new GestureDetector.SimpleOnGestureListener() {
@Override
public boolean onDoubleTap(MotionEvent event) {
int position = mListView.pointToPosition((int) event.getX(), (int) event.getY());
if (mAdapter.getItem(position) != null) {
onClickListItem(mAdapter.getItem(position));
}
return true;
}
});
mListView.setOnTouchListener(new ListView.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_UP) {
Log.d(TAG, "ACTION_UP");
return mDetector.onTouchEvent(event);
}
if (event.getAction() == MotionEvent.ACTION_DOWN) {
Log.d(TAG, "ACTION_DOWN");
return mDetector.onTouchEvent(event);
} else {
Log.d(TAG, "Action " + event.getAction());
return false;
}
}
});
这种方法似乎并没有产生一个运动事件。你会如何检测单元格上的双击? – Alan
此方法用于检测ListView项目上的轻敲,这是您要求提供的问题。 – NoChinDeluxe
如果您想要检测列表项上的双击,我认为您只能获取双击的x和y坐标,然后您必须手动将其与列表项的坐标进行匹配。按照Google UI指南的建议,使用长按来代替双击是非常简单的。 – NoChinDeluxe