Android MapView尝试添加视图,但已经拥有父视图

时间:2012-04-05 13:31:53

标签: android view map

我有以下代码:

setContentView(R.layout.maplayout);
// Create Rotate view
mRotateView = new RotateView(this);

// create a map view
mapView = (MapView) findViewById(R.id.mapview);

mRotateView.addView(mapView); // error here
setContentView(mRotateView);
mylocation = new MyLocationOverlay(this,mapView);

但是当我添加视图时,我收到一条错误消息,指出指定的子节点已经有父节点。我认为这是因为mapView已经是布局的子项。

那么,我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

选项#1:将RotateView放在res/layout/maplayout.xml资源中作为MapView小部件的父级,因此您无需在Java代码中进行设置。

选项#2:从MapView资源中删除res/layout/maplayout.xml,通过其构造函数创建它的实例,并使用Java代码将其添加到RotateView

选项#3:在调用removeView()之前调用父级的MapView以从中删除addView(),以将其添加到RotateView