【发布时间】:2016-10-13 19:40:18
【问题描述】:
我的 Activity 中需要一个 FloatingActionButton (FAB),您可以拖动它。但你也可以点击它。我从另一篇文章中复制了这个:
fab.setOnTouchListener(new View.OnTouchListener() {
float startX;
int lastAction;
@Override
public boolean onTouch(View view, MotionEvent event) {
switch (event.getActionMasked()) {
case MotionEvent.ACTION_DOWN:
startX = view.getX() - event.getRawX();
lastAction = MotionEvent.ACTION_DOWN;
break;
case MotionEvent.ACTION_MOVE:
view.setX(event.getRawX() + startX);
lastAction = MotionEvent.ACTION_MOVE;
break;
case MotionEvent.ACTION_UP:
if (lastAction == MotionEvent.ACTION_DOWN){
edit();
}
break;
case MotionEvent.ACTION_BUTTON_PRESS:
default:
return false;
}
return true;
}
});
问题是:如果您想经常点击它,它不会将其识别为点击,而是将其识别为移动。所以这不是很精确。如何更改代码以使其更好?
【问题讨论】:
标签: android button drag floating-action-button