我正在尝试实现一个实现谷歌地图并在其上显示标记的片段。
片段目前有两个子节点,一个按钮和一个具有属性
的片段class="com.google.android.gms.maps.MapFragment"
当我的viewpager切换到那个(或一个close by)片段时,ui会冻结一点
我目前所做的是在我调用的片段的OnCreateView方法中:
MapFragment map_fragment = FragmentManager.FindFragmentById<MapFragment>(Resource.Id.maps_map);
map_fragment.GetMapAsync(this);
然后我让片段实现了IOnMapReadyCallback接口,我在那里完成所有工作
我尝试创建AsyncTask并让GetMapAsync方法在其DoInBackground中运行,但是我得到一个错误,即必须在主线程上运行GetMapAsync
有没有办法避免冻结?
答案 0 :(得分:0)
尝试查看文档Add a map to an Android app。
在这里,您可以查看如何将Fragment
对象添加到将处理地图的Activity
,如何实现OnMapReadyCallback
界面并使用onMapReady(GoogleMap)
回调方法获取GoogleMap
的句柄,以及如何调用/使用片段上的getMapAsync()
来注册回调。
有关详细信息和示例代码,请访问我在文档中提供的链接。
如果它可以帮助您并了解更多信息,您也可以查看SO question。