问题:
我有两个侦听器,分别是OnSingleTapListener
和OnGraphicClick
目标:
看看我所附的屏幕截图;我希望当用户点击“在此处轻按”图标时同时调用这两个侦听器。当前,当用户点击“在此处点击”图标时-OnGraphicClick
似乎拦截了用户事件,并且未调用OnSingleTapListener
。
我试图想到一种在onSingleTap
中手动调用OnSingleTapListener
方法的方法,但是它需要float
参数(用户单击的屏幕位置),并且OnGraphicClick
需要一个ArcGIS graphic
对象:两种方法的参数无关。
要考虑的问题
有没有一种方法可以通过模仿以下操作来模仿用户事件performClick
方法,将执行一次点击
在用户点击“点击此处”图标的位置?
我是否可以将不可见视图放置在地图视图之上,并将OnSingleTapListener
放置在该不可见视图上?如果这样做的话,用户的点击事件是否会滴答滴答地传递通过不可见视图,以便与放置在地图视图上的onGraphicClick
侦听器进行交互?
有用的信息:
我正在使用Android的ArcGIS API。
我有两个听众。在OnSingleTapListener
对象(包含所有地图内容的主视图)上设置的一个MapView
,也在onGraphicClickListener
对象上设置的一个与ArcGIS相关的MapView
。
MySingleTapListener mySingleTapListener = new MySingleTapListener(mMapView.getContext(), mMapView);
mMapView.setOnSingleTapListener(mySingleTapListener);
mMapViewHelper = new EnhancedMapViewHelper(mMapView, handler, this); //<--onGraphicClickListener is set here
样本画面显示
最佳答案
我无法让两个听众一起工作。但是,我确实找到了解决方案。MapView
类包含一个toMapPoint
方法,该方法将屏幕坐标转换为地图坐标。使用此方法的方法如下:
只需在要使用的OnSingleTapListener
上设置一个MapView
。
让onSingleTap
的OnSingleTapListener
方法通过toMapPoint
方法将每个用户事件转换为地图坐标。
如果地图坐标与“点击此处”图标的地图坐标相等,则执行某些操作,即在这些屏幕坐标处显示弹出窗口。
关于android - Android:两个事件监听器-如何同时调用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37439604/