- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
更新:我知道发生了什么。查看评论。
我正在尝试编写一个 ViewSwitcher,它将所有手势传递给它的第一个 child ,直到它收到一个缩放手势;然后它将它们传递给它的第二个 child ,直到该 child 再次完全缩小,然后恢复到第一个 child 。我的子类有一个 ScaleGestureDetector,我做了一个非常简单的监听器:
protected class OnScaleModeSwitcher implements ScaleGestureDetector.OnScaleGestureListener
{
protected PageFlipSwitcher owner;
public OnScaleModeSwitcher(PageFlipSwitcher newOwner)
{
super();
owner = newOwner;
}
@Override
public boolean onScale(ScaleGestureDetector detector) {
return false;
}
@Override
public boolean onScaleBegin(ScaleGestureDetector detector) {
owner.onScaleBegin();
//returning false here causes the rest of the gesture to be ignored.
return false;
}
@Override
public void onScaleEnd(ScaleGestureDetector detector) {
owner.onScaleEnd();
}
}
如您所见,它所做的只是在构造时引用所有者对象,然后将一些事件传递给所有者类中的方法。但是,代码未达到 onScaleEnd()。
我知道 onInterceptTouchEvent 可能有点冒险;我尽可能地遵循了 Android 文档中的建议,并且有
@Override
public boolean onInterceptTouchEvent(MotionEvent ev)
{
onTouchEvent(ev);
return false;
}
@Override
public boolean onTouchEvent(MotionEvent ev)
{
//mode is the name of the ScaleGestureDetector
mode.onTouchEvent(ev);
//this code just passes events to the children
//it seems to work OK
if(zoomActive)
{
//ZoomSwitcher
getChildAt(1).onTouchEvent(ev);
}
else
{
//Gallery
getChildAt(0).onTouchEvent(ev);
}
return true;
}
我在其他地方读到 GestureDetector 可能不会收到 ACTION_UP 事件:
Android: How to detect when a scroll has ended
这就是这里发生的事情吗?如果是这样,onScaleEnd() 方法的意义何在?
编辑:
我已经解决了这个问题:这是因为我的方法返回 false。 Eclipse 自动实现了一些 stub ,我在填充它们时没有更改返回值。
最佳答案
如果设置了从 onScaleBegin(...) 返回 false 的 ScaleGestureDetector,则不会命中任何后续方法。通常,使用 MotionEvent 但返回 false 的方法不会获得后续的 MotionEvent,直到 ACTION_UP 之后,当监听器被重置时。
关于android - ScaleGestureDetector.OnScaleGestureListener.onScaleEnd() 方法没有被击中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6595244/
我遇到了一个问题,我无法将网络请求发送到我创建的 Docker 容器。我已经公开了正确的端口,所以我不确定这里可能有哪些其他问题。 我有一台服务器在容器中运行 alice在 localhost:100
在下面最后一行的方法中,我总是遇到异常: System.OverflowException: Value was either too large or too small for an Int32.
我正在关注 realpython article about running Flask on Ubuntu .建议在文章中检查 nginx 已通过导航到 http://localhost:8000/
给定一个条件,我想搜索一个元素列表并返回第一个达到条件的元素和前一个元素。 在 C/C++ 中,这很容易: int i = 0; for(;;i++) if (arr[i] == 0) break;
我正在使用 Firebase Firestore 我想从数据库中删除数据..删除数据工作正常,但我的进度对话框卡住了。我想我必须使用工作线程,但我不知道如何使用。 db = FirebaseFire
我按照 this page 上的说明进行操作创建推送通知。我之前实际上已经做过一次并且能够让它工作(几周前),花了一些时间,我想我现在才再次做这个教程作为复习,出于某种原因,我可以'甚至获取代码以点击
我在大学学习Java,这是我的任务。任务是创建一个由颜色方块组成的x x y网格,每个网格在单独的线程中运行,并且每k ms要么将其颜色更改为随机的颜色,要么对其邻居的颜色求平均。 现在,如果我创建一
我有一台服务器,它不断地从自身获得随机命中,IP 读取为 127.0.0.1 .我知道有各种各样的程序可以做到这一点,但服务器是带有 sendmail 和 monit 的最低限度的 LAMP 服务器。
我正在使用 sqlite 数据库并且我在这个要点中声明了模型 https://gist.github.com/mmahesh/7245561 我添加了一个带有事务管理器的模型实例作为 with tra
我是一名优秀的程序员,十分优秀!