在 Xamarin android 中,创建 MapFragment,代码显示 map ,但 mapFragment.Map 始终为 null,我无法设置 map 类型
代码:
var mapFragment = MapFragment.NewInstance (mapOptions);
FragmentTransaction tx = FragmentManager.BeginTransaction();
tx.Add(Resource.Id.map_fragment_container, mapFragment);
map = mapFragment.Map;
if (map != null) {
map.MapType = GoogleMap.MapTypeNormal;//never comes to this line
}
tx.Commit();
xml:
<FrameLayout
android:id="@+id/map_fragment_container"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent" />
最佳答案
原因是 map View 不是在调用时创建的
var mapFragment = MapFragment.NewInstance (mapOptions);
所以我在访问 mapFragment.Map 之前使用了 500 毫秒的延迟;
handler.PostDelayed (UpdateMap, 500);
void UpdateMap()
{
map = mapFragment.Map;
if (map != null) {
map.MapType = GoogleMap.MapTypeNormal;
map.MoveCamera(cameraUpdate);
return;
}
handler.PostDelayed(UpdateMap, 500);
}
关于android xamarin google MapFragment.Map 为空,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26735031/