1

我找了又找,没有人完整回答。

我有一个项目需要在 Android 项目的多个片段之一中使用新的 MapFragment。

到目前为止,我拥有它就像一个 FB 移动应用程序。它在左侧显示一个菜单,用户可以选择一个项目并显示一个片段。到目前为止,我搜索和搜索。没有完整和可行的答案。

我喜欢看到示例代码和/或示例项目,它们可以在 Android 应用程序中的许多片段的片段中显示新的 Google MapFragment。

提前致谢。

4

2 回答 2

0

以编程方式添加 SupportMapFragment 有效。在您的片段实现中:

...
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
...

@Override
public void onStart() {
    super.onStart();

    // add fragment 
    mMapFragment = SupportMapFragment.newInstance();
    FragmentTransaction fragmentTransaction = getChildFragmentManager().beginTransaction();
    fragmentTransaction.add(R.id.game_map_container, mMapFragment);
    fragmentTransaction.commit();

    // add a marker
    map = mMapFragment.getMap();

    if (map != null) {
        // The Map is verified. It is now safe to manipulate the map.
        map.setMapType(GoogleMap.MAP_TYPE_SATELLITE);
        map.addMarker(new MarkerOptions().position(target));
        map.setMyLocationEnabled(true);
        map.moveCamera(CameraUpdateFactory.newLatLngZoom(target, 10));
    } else {
        Log.e(TAG, "map is not available");
    }
}

实际上,这个想法是从使用 Maps API v2 以编程方式初始化 MapFragment中窃取的

于 2012-12-24T08:14:14.813 回答
0

我刚刚对 getChildFragmentManager() 做了一些研究,你必须使用 IMPORT android.support.v4.app.Fragment 和其他类似的,而不是使用 IMPORT android.app.Fragment 和其他

不一定,虽然getChildFragmentManager()只是Fragment在 API 级别 17 中添加到本机实现中。

欢迎您使用SupportMapFragmentAndroid 支持包的片段反向移植。这应该允许您getChildFragmentManager()与 Maps V2 一起使用。

于 2012-12-11T16:21:35.480 回答