【发布时间】:2023-04-01 06:35:01
【问题描述】:
我有一个全屏显示 Google 地图的活动。
我有一个扩展 MapsActivity 的子活动。
当我从 Parent 扩展 child 时,它会在整个屏幕上显示 Map。
在Child Activity 中,我需要在顶部添加地图,在底部添加列表视图,这将在Child Activity Layout 中实现。
我尝试这样做,但它给了我以下错误消息,
Caused by: java.lang.IllegalStateException: 指定的孩子 已经有了父母。您必须在孩子的父母上调用 removeView() 首先。
public class PlacesListActivity extends GoogleMapsActivity{
View parentFragment;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_google_map);
parentFragment= findViewById(R.id.g_map);
LinearLayout linearLayout= new LinearLayout(this);
linearLayout.setOrientation(LinearLayout.VERTICAL);
linearLayout.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT));
linearLayout.addView(parentFragment);
在上面的代码中,我没有使用ChildActivity Layout,但是如果我使用它,它并没有得到Parent Activity的元素。
【问题讨论】:
-
正如错误所说,parentFragment 我会假设您的地图已经设置在父级上。您可能必须创建一个新地图并将其添加到您的线性布局中。这都是一个假设。您可能必须发布您的 xml 文件,以便我们更清楚地看到它。
标签: android android-layout android-fragments android-fragmentactivity