- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我必须在我的程序中使用 GestureDetectors。一个工作精美,另一个则不然。据我所知,它们的实现方式相同。
这是实现不起作用的代码:
myExcuseGestureDetector = new GestureDetector(new excuseGestureDetector());
excuseView.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
if(myExcuseGestureDetector.onTouchEvent(event)){
Log.d("Excuse Gesture Return","true");
return true;
}
Log.d("Excuse Gesture Return","false");
return false;
}
});
然后我有这个 block ,它定义了 excuseGestureDetector
private class excuseGestureDetector extends SimpleOnGestureListener{
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
Log.d("MotionEvent","onFling");
try {
if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH)
return false;
// right to left swipe
if(e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
if(currExcuseNumber<currExcuseSet.size()){
currExcuseNumber++;
loadNextExcuse(currExcuseNumber,1);
excuseView.setInAnimation(slideLeftExcuseIn);
excuseView.setOutAnimation(slideLeftExcuseOut);
excuseView.showNext();
return true;
}
} else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
if(currExcuseNumber > 1){
loadNextExcuse(currExcuseNumber,0);
excuseView.setInAnimation(slideRightExcuseIn);
excuseView.setOutAnimation(slideRightExcuseOut);
excuseView.showPrevious();
return true;
}
}
} catch (Exception e) {
// nothing
}
return false;
}
}
无论出于何种原因,它根本不会记录这一举动。无论动画是否发生,程序都应打印出我试图跟踪的 Log.d("MotionEvent","onFling"),但事实并非如此。我所知道的是,它确实记录了某种触摸事件已经发生,因为它确实从我显示的第一个 block 中找出了“Excuse Gesture Return”“false”。对为什么它不注册这个 fling 有什么想法吗?
最佳答案
我不太确定为什么,但是只要我在 SimpleOnGestureListener 中为所有可能的手势设置 Overrides,它就开始工作了。显然它需要所有这些,而不仅仅是 onFling。
关于Android:GestureDetector 不会捕捉到手势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4027553/
有没有办法让 GestureDetector 覆盖所有子 GestureDetectors 的功能? 我有一个复杂的小部件,我希望能够轻松地在较高级别覆盖它的所有行为。例如,将免费用户锁定在功能之外。
如果我有一个具有内部 GestureDetector 的 GestureDetector,我该如何设置它以便两个检测器都接收到点击事件? 你可以在这里看到运行代码: https://dartpad.d
如果 GestureDetector.SimpleOnGestureListener 与 GestureDetector.OnGestureListener 执行相同的操作,但不需要未使用的代码,那么
我正在编写简单的代码来检测所有手势,如滑动、滚动等,并打算实现接口(interface) GestureDetector.OnGestureListener用于覆盖它的方法,但我知道同样可以用 Ges
我已经用不同的子 Activity 实现了我的 TabActivity: intent = new Intent().setClass(this, MyChildTabActiviy.class);
我创建了此代码,但我想拥有4x4的翻转卡,您能告诉我该怎么做吗?请 下面的代码是否可以帮助我谢谢你。 我想重复GestureDetector 4 x 4。 在新的flip_card.dart文件中。
我创建了标准手势检测器,它根据给定的手势更改 TextView 。当我的 XML 仅包含我希望更改的相对布局和 TextView 时,一切正常。然而,当我添加网格布局和一些图标时,手势检测器不再工作,
出于某种原因,我的手势检测器无法正常工作。我已经查看了其他多个答案,说要在 down 上实现。我有,但它仍然不起作用。有人可以帮忙吗?这是我无法正常工作的代码。如您所见,我执行了 onDown pub
我正在学习使用 GestureDetector 并遵循 android 的官方开发人员指南,但是当我尝试运行一段代码时遇到了问题.. public class MainActivity extends
我必须在我的程序中使用 GestureDetectors。一个工作精美,另一个则不然。据我所知,它们的实现方式相同。 这是实现不起作用的代码: myExcuseGestureDetector = ne
我正在尝试使用 GestureDetector 使文本小部件可缩放,但它根本不起作用,我什至没有收到任何错误... 请注意,我尝试了很多事情,比如用 GestureDetector 包裹脚手架本身..
当我在 GestureDetector 中有一个 ListView 并且我覆盖了 onVerticalDragUpdate 方法时,ListView 无法滚动. 我如何重写 onVerticalDra
我正在尝试在我的 zoomable_images plugin 中实现双击缩放功能但是GestureTapCallback不提供点击位置信息。 理想情况下,偏移量将由回调返回。有其他 API 吗? 最
我有这个代码 itemizedOverlay = new MyItemizedOverlay(drawable,this); itemizedOverlay.setGestureDetector(ne
我正在使用 GestureDetector 并没有找到任何告诉您拖动方向的 onXYZ 事件。 最佳答案 你试过 onPanUpdate(details) 方法了吗?这是你可以做到的。 Gesture
我有两个容器在一个堆栈中,两个容器都有 GestureDetector。第一个容器的 OnTap 工作正常,但它不适用于另一个容器。第一个容器是图像,第二个容器是部分对齐在第一个容器上方的绿色背景。
我制作了一个简单的测试用例应用程序,您可以在其中使用 GestureDetector 单击一个小部件,该小部件使用 setState 触发对 tapCount 变量的更新。 应用程序在模拟器中运行,文
在我的 build ,我有这个函数,基本上堆叠一个button和一个 counter ,我还传递了一个函数(这让我对所有按钮重用 buildbuttoncolumn,而不是复制周围的代码 我的构建:
当用户在外面轻敲但我无法让它工作时,试图用 GestureDetector 使 TextFormField 失去焦点。 onTap 从不触发。 class EditScreen extends Sta
我正在尝试使 GestureDetector 在堆栈中工作,堆栈顶部有一个容器,但从未调用 onTap 回调。 如您所见,即使使用 HitTestBehavior.translucent 也不起作用
我是一名优秀的程序员,十分优秀!