如何以编程方式添加地图片段

use*_*670 12 java android google-maps

我想以编程方式将此xml片段添加到其他片段.可能吗?

<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.SupportMapFragment" />
Run Code Online (Sandbox Code Playgroud)

Num*_*617 17

在XML中,您可以添加占位符容器:

<FrameLayout
        android:id="@+id/mapContainer"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>
Run Code Online (Sandbox Code Playgroud)

然后在代码中你可以做到:

FragmentManager fm = getChildFragmentManager();
SupportMapFragment supportMapFragment =  SupportMapFragment.newInstance();
fm.beginTransaction().replace(R.id.mapContainer, supportMapFragment).commit();
Run Code Online (Sandbox Code Playgroud)

  • @JosephMekwan关于getChildFragmentManager().需要明确的是,如果您尝试在Activity中插入片段,则必须使用getSupportFragmentManager()或getFragmentManager().如果你想拥有内部片段,那么getChildFragmentManager()在片段内部使用.如果你有API 17或更高,它必须在那里的某个地方. (2认同)