我找了又找,没有人完整回答。
我有一个项目需要在 Android 项目的多个片段之一中使用新的 MapFragment。
到目前为止,我拥有它就像一个 FB 移动应用程序。它在左侧显示一个菜单,用户可以选择一个项目并显示一个片段。到目前为止,我搜索和搜索。没有完整和可行的答案。
我喜欢看到示例代码和/或示例项目,它们可以在 Android 应用程序中的许多片段的片段中显示新的 Google MapFragment。
提前致谢。
我找了又找,没有人完整回答。
我有一个项目需要在 Android 项目的多个片段之一中使用新的 MapFragment。
到目前为止,我拥有它就像一个 FB 移动应用程序。它在左侧显示一个菜单,用户可以选择一个项目并显示一个片段。到目前为止,我搜索和搜索。没有完整和可行的答案。
我喜欢看到示例代码和/或示例项目,它们可以在 Android 应用程序中的许多片段的片段中显示新的 Google MapFragment。
提前致谢。
以编程方式添加 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中窃取的
我刚刚对 getChildFragmentManager() 做了一些研究,你必须使用 IMPORT android.support.v4.app.Fragment 和其他类似的,而不是使用 IMPORT android.app.Fragment 和其他
不一定,虽然getChildFragmentManager()
只是Fragment
在 API 级别 17 中添加到本机实现中。
欢迎您使用SupportMapFragment
Android 支持包的片段反向移植。这应该允许您getChildFragmentManager()
与 Maps V2 一起使用。