ScrollView中的ArcGIS Mapview地图滚动问题

时间:2014-05-10 02:21:50

标签: android map scrollview arcgis esri

我一直在浏览一系列关于ScrollView使用谷歌地图从MapView窃取触摸事件的问题的不同主题,我已经看到了几种关于如何覆盖onTouch事件的不同解决方案。我正在为我的应用程序使用ArcGIS地图,我尝试了几种谷歌地图解决方案,但没有任何工作。所以我想知道是否有人可以在ScrollView中使用ArcGIS mapview的解决方案覆盖onTouch事件,以便可以垂直和水平平移地图。

目前我只添加了几层图层的MapView,所以这是一个非常基本的设置,但如果发布一些代码将有助于我发布一些代码。

1 个答案:

答案 0 :(得分:2)

提出了一个有效的解决方案。

我将监听器放在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;
    }


}

我希望这可以帮助别人,并节省他花在试图找到我要找的东西上的时间。