gpt4 book ai didi

Android:GestureDetector 不工作(gestureDetector.onTouchEvent(事件)始终为假)与选项卡(TabActivity,Tabwidget)

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:54:18 25 4
gpt4 key购买 nike

我已经用不同的子 Activity 实现了我的 TabActivity:

intent = new Intent().setClass(this, MyChildTabActiviy.class);
// Initialize a TabSpec for each tab and add it to the TabHost
spec = getTabHost.newTabSpec("tag").setIndicator("indicator", getResources().getDrawable(R.drawable.icon)).setContent(intent);
getTabHost.addTab(spec);
...

到目前为止没有问题,一切正常。我以编程方式在选项卡之间切换,将选项卡内的 Activity 替换为 ActivityGroups 等,正如许多教程中所示。

但我的问题是,当我想检查一个滑动手势时,我的 gestureDetector.onTouchEvent(event) 总是返回 false,因此没有手势被注册。

这是我对 gestureDetector 的实现:

public class MyChildTabActiviy extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
// ... building views, controls, etc.
GestureDetector gestureDetector = new GestureDetector(this, new MyGestureDetector());
}
@Override
public boolean onTouchEvent(MotionEvent event) {
return gestureDetector.onTouchEvent(event);
}
class MyGestureDetector extends SimpleOnGestureListener {
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH)
return false;
// left to right swipe and right to left swipe
if (e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE
&& Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
//... fling logic ...
return true;
} else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE
&& Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
//... fling logic ...
return true;
}
return false;
}
}

问题是,当我在 TabActivity 之外开始这些 Activity (有四个基本 Activity ,我有时会切换到其他 Activity )时,这段代码(以及 fling 检测)工作得很好,例如作为启动器 Activity 。但我无法让它在 TabActivity 中工作。我已经尝试将 GestureDetector 附加到 TabActivity,但它不起作用。我尝试将 GestureDetector 附加到特定 View ,例如一些布局 View 或按钮、ViewFlippers 等,但它不起作用。当我调试时,我可以看到触发了触摸事件并注册了一个 Action ,但它没有被评估为猛击或任何其他手势。

所以我的问题是,在 Android 中使用带标签的 GestureDetectors 是否有任何限制?正如我所说,手势在 TabActivity 之外完美注册。

非常感谢知道答案的人的帮助。如果存在限制,人们如何找到解决该问题的方法?

预先感谢您的回答。

最佳答案

看看提到的答案 here .他几乎和你做了同样的事情,但如果你看一下对最高评价答案的第一条评论,Cdsboy 通过实现 OnDown 并返回 true 来让它工作。我不确定为什么需要这样做,但它对我有用。

关于Android:GestureDetector 不工作(gestureDetector.onTouchEvent(事件)始终为假)与选项卡(TabActivity,Tabwidget),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4394025/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com