我遇到的问题是我不知道如何解决,以及为什么会发生这种情况。
很简单。我已经将ImageView作为一个按钮工作,当用户点击它时,屏幕上会移动一些东西,当触摸重新触发时,它会停止。
所以我只是在我的ImageView上设置了OnTouchListener并希望它可以工作,但它没有。
我需要实现空的OnClickListener,然后它会做它应该做的事情。
private void setSolveImage() {
ImageView solve_button = (ImageView)getView().findViewById(R.id.solve_button);
solve_button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
}
});
solve_button.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
int action = event.getAction();
if (action == MotionEvent.ACTION_DOWN) {
screen.setTilesOrder(status.getCleanStatus()); // do something with screen
} else if (action == MotionEvent.ACTION_UP) {
screen.setTilesOrder(status.getGameStatus()); // return screen to previous state
}
}
return false;
}
});
}
你能告诉我,我做错了什么吗?为什么我必须这样做?
答案 0 :(得分:2)
只做一个改变并做一个技巧
在return true;
return false;
代替setOnTouchListener()
无需设置setOnClickListener()
答案 1 :(得分:1)
如果在触摸时消耗回调则返回true,否则返回false。所以在setOnTouchListener中将返回类型更改为true而不是false。