我正在玩我写过的主要活动为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
被调用。对于其他三个,我一无所获。如果重要的话,它总是四分之三。
答案 0 :(得分:0)
过去对我有用的一件事是实现onDown()并返回true ...
在执行此操作时,请小心......我发现当使用onGestureListener处理其他内容(如单击)时,Android的1.x和2.x版本之间的行为是不同的...因此,请务必在进行此类更改时彻底测试您的应用。
如果您只使用onFling,那么您“应该”没问题......但为了安全起见,请进行测试。