【发布时间】:2016-01-05 06:30:47
【问题描述】:
我目前正在开发由原始开发人员在其现有 Android 应用程序中安装的 Java SDK。现在我需要设置一些事件监听器,例如:
public void registerTouchListener(ScrollView scrollview) {
scrollview.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
Log.d("SDK", event.toString());
return false;
}
});
}
问题是传入的滚动视图可能已经有一个注册的监听器,所以我的问题是如何挂钩到现有的监听器或注册第二个监听器?
【问题讨论】:
-
AFAIK,答案是“你什么都不做”,因为听众设置者没有吸气剂。
-
是的,我注意到了,我仍然需要以某种方式实现我的想法的要点......有什么建议吗?
-
为他们提供您自己的 API 以提供
ScrollView侦听器,您自己在其中实现复合模式,以将事件转发给两个侦听器。然后,记录一下这到底是怎么回事,这样开发人员就知道您拥有触摸侦听器的所有权,他们需要调用您的 API 而不是自己调用setOnTouchListener()。 -
是的好主意;我也在考虑编写一个通过反射检查属性的轮询类,例如检查 scrollY 或 sth - 你对此有何看法?
-
我不知道这是否会奏效,抱歉。