0

我正在玩我写的一个应用程序,它的主要活动是TabActivity. 我正在考虑允许用户在选项卡之间导航,但我发现我只能在四个选项卡之一上检测到弹跳。

public class WSGesture extends TabActivity implements OnGestureListener {

    private GestureDetector gestureScanner;

    @Override onCreate(Bundle savedInstanceState)
    {

    gestureScanner = new GestureDetector(this);  
    ...  
    }   

    .  
    .  
    .  
    @Override  
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,  
        float velocityY) {  
        Log.v(TAG, "onFling called, velX: " + velocityX + ", velY: " + velocityY);  

        return true;  
    }

    public boolean onTouchEvent(MotionEvent me)
    {   
        return gestureScanner.onTouchEvent(me);
    }
}

当我执行这段代码时,我只看到onFling一个特定选项卡被设置为当前选项卡时被调用。对于其他三个,我一无所获。如果这很重要,它总是四分之三。

4

1 回答 1

0

过去对我有用的一件事是实现 onDown() 并返回 true...

但是,在执行此操作时要小心……我发现在使用 onGestureListener 处理其他事情(例如单击)时,执行此操作的行为在 1.x 和 2.x 版本的 Android 之间是不同的……所以请确保在进行此类更改时彻底测试您的应用程序。

如果你只使用 onFling 那么你“应该”没问题......但为了安全起见测试它。

于 2011-03-02T05:50:26.957 回答