Я пытаюсь реализовать жест «Проведите пальцем вправо» в своей активности Android. Я использую класс GestureDetector, как указано в официальной документации Google, но кажется, что команды не распознаются. Это мой код:
public class DetailActivity extends AppCompatActivity implements GestureDetector.OnGestureListener,
GestureDetector.OnDoubleTapListener {
public static String EXTRA_ID = "extra_id";
public static String EXTRA_TITLE = "extra_title";
private int currentApiVersion;
private GestureDetectorCompat mDetector;
private final int SWIPE_MIN_DISTANCE = 120;
private final int SWIPE_THRESHOLD_VELOCITY = 200;
@BindView(R.id.movieTitle) TextView tvTitle;
Context context;
@Override
public void onBackPressed() {
super.onBackPressed();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.detail_activity);
mDetector = new GestureDetectorCompat(this,this);
mDetector.setOnDoubleTapListener(this);
}
@Override
public boolean onTouchEvent(MotionEvent event){
if (this.mDetector.onTouchEvent(event)) {
return true;
}
return super.onTouchEvent(event);
}
@Override
public boolean onDown(MotionEvent event) {
return true;
}
@Override
public boolean onFling(MotionEvent event1, MotionEvent event2,
float velocityX, float velocityY) {
if ((int)event2.getX() - (int)event1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
onBackPressed();
return true;
}
return true;
}
@Override
public void onLongPress(MotionEvent event) {
}
@Override
public boolean onScroll(MotionEvent event1, MotionEvent event2, float distanceX,
float distanceY) {
return true;
}
@Override
public void onShowPress(MotionEvent event) {
}
@Override
public boolean onSingleTapUp(MotionEvent event) {
return true;
}
@Override
public boolean onDoubleTap(MotionEvent event) {
return true;
}
@Override
public boolean onDoubleTapEvent(MotionEvent event) {
return true;
}
@Override
public boolean onSingleTapConfirmed(MotionEvent event) {
return true;
}
}
Это действительно просто, я хотел бы, чтобы при жесте смахивания вызывался метод OnBackPressed, чтобы я мог смоделировать, что будет делать метод при возврате с кнопкой панель навигации. В Logcat отображаются только сообщения указатель ViewPostIme 0 и указатель ViewPostIme 1 .