每次调用此函数时,我都会显示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);
}
答案 0 :(得分:1)
我不确定你在做什么,但最简单的解决方案是添加这一行:
((ViewGroup) mapView.getParent()).removeView(mapView);
发生错误的地方。我猜这发生在这里:
} else {
((ViewGroup) mapView.getParent()).removeView(mapView); // Add me
((ViewGroup) view.findViewById(R.id.myMap)).addView(mapView);
}