リストアイテムでユーザーの右から左へのスワイプにボタンを表示したいのですが、アダプターに以下のコードを書きましたが、垂直スワイプでも動作していることを除いて正常に動作しています.垂直スワイプイベントを停止するにはどうすればよいですか?
最終ボタン btnLoyaltyName = (ボタン) view .findViewById(R.id.loyaltynamebutton);
btnLoyaltyName.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
int action = event.getAction();
switch (action) {
case MotionEvent.ACTION_DOWN: {
downX = event.getX();
downY = event.getY();
return true;
}
case MotionEvent.ACTION_CANCEL: {
upX = event.getX();
upY = event.getY();
float deltaX = downX - upX;
float deltaY = downY - upY;
Log.i("afasf", "X Position==" + deltaX + "Y poastion="
+ deltaY);
// if (deltaX > 0)
{
// swipe horizontal?
if (Math.abs(deltaX) > MIN_DISTANCE) {
// left or right
if (deltaX < 0) {
onSwipe(v);
return true;
}
if (deltaX > 0) {
onSwipe(v);
return true;
}
} else {
// Log.i(logTag, "Swipe was only " +
// Math.abs(deltaX) + " long, need at least " +
// MIN_DISTANCE);
return false; // We don't consume the event
}
}
}
}
return false;
}
});