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