由网友(Arrogant 傲慢)分享简介:我试图加载SupportMapFragment动态的片段,这是我的onCreateView()方法:I'm trying to load SupportMapFragment dynamically in a fragment, here is my onCreateView() method:@Overridep...
我试图加载SupportMapFragment动态的片段,这是我的onCreateView()方法:
I'm trying to load SupportMapFragment dynamically in a fragment, here is my onCreateView() method:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View contentView = inflater.inflate(R.layout.frag_map_layout, null);
shopDtos=ShopListFragment.shopDtos;
fragment =SupportMapFragment.newInstance();
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.map_content, fragment);
ft.commit();
map = fragment.getMap();
mapMarker = map.addMarker(new MarkerOptions().position(new LatLng(0, 0))
.icon(BitmapDescriptorFactory
.fromResource(R.drawable.maps_pin)));
return contentView;
}
不幸的是,我得到的GoogleMap的地图为空
。
到如何动态地创建一个mapfragment任何建议?
Unfortunately, I get the GoogleMap map as null
.
Any suggestions on to how create a mapfragment dynamically?
推荐答案
地图需要一些时间来加载,所以你需要在处理程序运行code - >
map takes some time to load, so you need to run your code in handler -->
Handler handler = new Handler();
handler.postDelayed(new Runnable()
@Override
public void run() {
GoogleMap googleMap = SupportMapFragment.newInstance(new GoogleMapOptions().zOrderOnTop(true)).getMap();
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.map_content, fragment);
ft.commit();
if(googleMap != null) {
googleMap.addMarker(new MarkerOptions().position(result)).setVisible(true);
// Move the camera instantly to location with a zoom of 15.
googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(result, 15));
// Zoom in, animating the camera.
googleMap.animateCamera(CameraUpdateFactory.zoomTo(14), 2000, null);
googleMap.getUiSettings().setZoomControlsEnabled(false);
googleMap.getUiSettings().setCompassEnabled(false);
googleMap.getUiSettings().setMyLocationButtonEnabled(false);
handler.removeCallbacksAndMessages(null);
}
else {
handler.postDelayed(this, 500);
}
}, 500);
相关推荐
最新文章