【发布时间】:2015-04-30 15:53:49
【问题描述】:
这是我的问题。我目前有一个导航抽屉,里面有 3 个项目。我希望其中一项是地图。我遵循了谷歌文档并成功创建了我的地图。问题是我的标记不会出现。我知道问题出在哪里,但我不确定如何解决。
这是地图片段。如您所见,我正在实现OnMapReadyCallback,并且我还包含了onMapReady() 方法。 onMapReady() 没有被调用(这就是问题所在),因为我没有调用 getMapAsync() 方法。我不知道我应该把它放在哪里,更不用说根据我的代码如何调用它了。
我还在导航抽屉中包含调用地图片段的代码。地图 xml 就像谷歌文档示例中的那样。就像我之前所说的那样;我的地图可以工作,但标记不显示,因为 onMapReady() 没有被调用。
地图片段:
public class MapsFragment extends Fragment implements OnMapReadyCallback {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.activity_maps, container, false);
return rootView;
}
@Override
public void onMapReady(GoogleMap googleMap) {
googleMap.addMarker(new MarkerOptions().position(new LatLng(29.702182, -98.124561)).title("marker"));
googleMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);
}
}
导航抽屉代码:
private void selectItem(int position) {
Toast.makeText(MainActivity.this, "Time for an upgrade", Toast.LENGTH_SHORT).show();
// This is where the fragment view changes will be put
Fragment fragment = null;
switch (position) {
case 0:
fragment = new Blank1Fragment();
break;
case 1:
//fragment = new Blank2Fragment();
fragment = new MapsFragment();
break;
case 2:
fragment = new Blank3Fragment();
break;
default:
break;
}
if (fragment != null) {
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction().replace(R.id.content_frame, fragment).commit();
mDrawerLayout.closeDrawer(mDrawerList);
} else {
}
}
【问题讨论】:
-
我对我的帖子进行了一些编辑。你能告诉我建议的代码应该去哪里以及如何实现。
标签: android google-maps android-fragments google-maps-api-3