反复充气地图视图

时间:2012-11-16 05:22:03

标签: android android-mapview

每次调用此函数时,我都会显示mapview。我也每次都删除视图。但是我仍然得到一个错误,说孩子已经有父母,先调用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 个答案:

答案 0 :(得分:1)

我不确定你在做什么,但最简单的解决方案是添加这一行:

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

发生错误的地方。我猜这发生在这里:

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