0

我想用ViewSwitcher在兩個MapView對象(基於GIS)之間切換。但我得到下面的異常在magnifyMap (**line xyz**) mapview無法使用ViewSwitcher切換mapviews

java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first. 

即使除去從父佈局(homeScreenLayout)子視圖(MapViews)之後。以下是相關的片段。

1)我的第一次MapView是XML:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" android:layout_height="fill_parent" 
android:id="@+id/homeScreenLayout"> 

<MapView 
    xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/map" 
    android:layout_width="fill_parent" android:layout_height="fill_parent"> 
</MapView> 

</RelativeLayout> 

2)我的第二個MapView是在我的活動:

 MapView map = (MapView) findViewById(R.id.map); 
     MapView magnifyMap = new MapView(ActivityMap.this); 
     magnifyMap = _map; 
     magnifyMap.setExtent(new Envelope(_tappedPoint, 3.0, 3.0)); 

3)我使用ViewSwitcher添加這些2次:

 homeScreenLayout.removeView(map); 
     homeScreenLayout.removeView(magnifyMap); 

     ViewSwitcher viewSwitcher = new ViewSwitcher(ActivityMap.this); 
     homeScreenLayout.addView(viewSwitcher); 

     viewSwitcher.addView(map, 0, new ViewGroup.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); 
     // **line xyz** 
     viewSwitcher.addView(magnifyMap, 1, new ViewGroup.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); // line xyz 

     viewSwitcher.showNext(); 
+0

每個活動只能有1個mapview。你在這裏做的任何事情肯定會成爲黑客。 – Falmarri

+0

@Falmarri - 我正在嘗試構建一個放大工具。如何在沒有2個mapview對象的情況下實現它?有什麼方法可以將其中的一個顯示爲圖像? – user1094717

回答

0

我們在單個ArcGIS中不能有多個MapView對象基於Android的應用。因此,我們無法使用ViewSwitcher來完成此任務。