【问题标题】:ArcGIS Mapview in ScrollView map scrolling issueArcGIS Mapview 中的 ScrollView 地图滚动问题
【发布时间】:2014-06-27 21:25:13
【问题描述】:
我一直在查看有关 ScrollView 使用谷歌地图从 MapView 窃取触摸事件的问题的一系列不同主题,并且我已经看到了几种关于如何覆盖 onTouch 事件的不同解决方案。我正在为我的应用程序使用 ArcGIS 地图,我尝试了几种谷歌地图解决方案,但没有任何效果。所以我想知道那里是否有人可能有一个解决方案,可以在 ScrollView 中使用 ArcGIS mapview 来覆盖 onTouch 事件,以便可以垂直和水平地平移地图。
目前我只有添加了几个图层的 MapView,所以这是一个非常基本的设置,但如果发布一些代码会有所帮助,我会非常乐意发布一些代码。
【问题讨论】:
标签:
android
map
scrollview
arcgis
esri
【解决方案1】:
想出了一个可行的解决方案。
我将监听器放在活动的 onCreate 中。
MyTouchListener tl = new MyTouchListener(this, mMapView);
mMapView.setOnTouchListener(tl);
然后我在扩展 MapOnTouchListener 类的同一活动中创建了一个类。
class MyTouchListener extends MapOnTouchListener{
ScrollView sv;
public MyTouchListener(Context c, MapView m){
super(c, m);
}
public boolean onTouch(View v, MotionEvent event){
sv = (ScrollView) findViewById(R.id.scroll);
int action = event.getAction();
switch(action){
case MotionEvent.ACTION_DOWN:
// will disable the scrollview from being able to
// intercept the touch events for the mapview
sv.requestDisallowInterceptTouchEvent(true);
break;
case MotionEvent.ACTION_UP:
// gives control back over to the scrollview
sv.requestDisallowInterceptTouchEvent(false);
break;
}
super.onTouch(v, event);
return true;
}
}
我希望这能帮助别人,并节省他们寻找所需内容的时间。