2012-11-16 3 views
0

이 함수를 호출 할 때마다 맵뷰가 확장됩니다. 또한 매번보기를 제거합니다. 하지만 여전히 아이가 이미 부모가 있다고 말하는 오류가 발생하면 removeview()를 먼저 호출하십시오.반복적으로 맵보기 확대

이 문제를 해결하는 방법에 대한 아이디어.

 void getGeoView(Context context) { 
     myRoot.removeAllViews(); 

     LayoutInflater inflater = (LayoutInflater) this 
      .getSystemService(LAYOUT_INFLATER_SERVICE); 
     View view = inflater.inflate(R.layout.geo_inflator, null); 

     ((ViewGroup) view.findViewById(R.id.myMap)).removeAllViews(); 

     if (mapView == null) { 
     mapView = new MapView(this, "0IEmqsWhwmo6Cu8hKdYn_VudUT8IpdKpXzMvQyw"); 
     ((ViewGroup) view.findViewById(R.id.myMap)).addView(mapView); 
     } else { 

     ((ViewGroup) view.findViewById(R.id.myMap)).addView(mapView); 
     } 

답변

1

나는 당신이 무엇을하고 있는지 잘 모르겠어요하지만 간단한 해결책이 줄을 추가하는 것입니다 : 오류가 발생 어디든지

((ViewGroup) mapView.getParent()).removeView(mapView); 

합니다. 나는 그것이 여기에서 일어난다 고 생각한다 :

} else { 
    ((ViewGroup) mapView.getParent()).removeView(mapView); // Add me 
    ((ViewGroup) view.findViewById(R.id.myMap)).addView(mapView); 
} 
관련 문제