我正在测试向左和向右滑动我的活动。我有以下代码:
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我可能做错了什么?
发布于 2017-04-27 01:30:34
当此问题发生在您身上时,很可能是由于布局中的某个元素造成的。我有一个RelativeLayout的子元素,它匹配父元素的高度和宽度:
<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerHorizontal="true" android:id="@+id/listView" android:layout_alignParentTop="true"/>当我删除它时,onFling事件被调用。
https://stackoverflow.com/questions/43623352
复制相似问题