1
我正在测试左右滑动活动。我有以下代码:onFling事件未触发
public class MainActivity extends AppCompatActivity implements LocationListener, GestureDetector.OnGestureListener {
...
private GestureDetectorCompat gestureDetector;
...
protected void onCreate(Bundle savedInstanceState) {
...
gestureDetector = new GestureDetectorCompat(this, this);
...
}
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH)
return false;
if (e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE
&& Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
// right to left swipe
Toast.makeText(getApplicationContext(), "right to left swipe", Toast.LENGTH_LONG);
} else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE
&& Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
Toast.makeText(getApplicationContext(), "left to right swipe", Toast.LENGTH_LONG);
}
Log.i("EVENT:", "Event triggered");
return true;
}
public boolean onTouchEvent(MotionEvent event) {
gestureDetector.onTouchEvent(event);
return super.onTouchEvent(event);
}
我希望当我向左和向右滑动时调用onFling方法。但是在onFling中我的消息都没有被调用。当我看到控制台时,我只是看到:
I/ViewRootImpl: ViewRoot's Touch Event : ACTION_DOWN
I/ViewRootImpl: ViewRoot's Touch Event : ACTION_UP
I/ViewRootImpl: ViewRoot's Touch Event : ACTION_DOWN
I/ViewRootImpl: ViewRoot's Touch Event : ACTION_UP
我会做什么错?