Я хочу отобразить кнопку справа от пользователя, прокрутить список в списке, я написал код ниже в адаптере и отлично работает, кроме того, что он также работает с вертикальным салфетки . Как я могу остановить событие вертикального салфетки?Горизонтальное перемещение справа налево onTouchlistner для кнопки на listitem
final Button btnLoyaltyName = (кнопка) вид .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;
}
});
Спасибо за ваш ответ, но я попытался с помощью GestureDetector, но его метод onfling не вызывает, так что я попытался с помощью выше approach.I пытался точно так же как упоминалось в этой ссылке http://stackoverflow.com/questions/16017988/android-list-view-right-left-swipes-like-call-logs, используя OnSwipeTouchListener.java, но метод onFilg не вызван. – user853341
это потому, что вы кормите свой GestureDetector из неправильного места, в случае ListView это должна быть ViewGroup, которая используется как элемент ListView. – pskink
Еще раз спасибо за ответ, у моей listiem есть кнопка и над двумя текстовыми полями. если я прокручу кнопку справа налево, метка кнопки будет изменена. Я делаю все это в методе bindview cursoradapter. это неправильно? – user853341