我有一个PagerAdapter,里面有一个GridView。
在GridAdapter类中,我添加了一个On Touch Listener,用于区分单击和拖动。 当我拖动一个元素时,一切工作都很好(我在onTouchListener函数中执行了操作),但是当我检查它是否单击时,我需要执行一个项目单击。
在我的情况下,gridView只有一个ImageView,而OnTouchListener是:
image_view.setOnTouchListener(new View.OnTouchListener() {
private static final int MAX_CLICK_DURATION = 800;
private long startClickTime;
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
switch (motionEvent.getAction()) {
case MotionEvent.ACTION_DOWN:
startClickTime = Calendar.getInstance().getTimeInMillis();
countDownTimer = new CountDownTimer(MAX_CLICK_DURATION, 100) {
public void onTick(long millisUntilFinished) {
//none
}
public void onFinish() {
MainFunction.play();
}
}.start();
return true;
case MotionEvent.ACTION_UP:
// The touch just ended
countDownTimer.cancel();
MainFunction.stop();
long clickDuration = Calendar.getInstance().getTimeInMillis() - startClickTime;
if(clickDuration < MAX_CLICK_DURATION) {
//click event has occurred
parent.getChildAt(position).performClick();
}
return false;
}
return false;
}
});
我尝试使用“ parent.getChildAt(position).performClick();”但什么也没发生。 在GridView的onItemClickListener中,如果单击了某个项目,则将启动MainFunction.pause()方法。 我该怎么办?
谢谢!