调用两次时,SupportMapFragment和mapFragment.getMapAsync不显示地图

时间:2015-09-15 19:11:15

标签: android google-maps android-fragments

我有一个按钮,点击该按钮将显示来自Google Maps for Android的地图。这是我第一次点击它,加载地图:

        mapButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //A new supportMapFragment is formed every time
                final SupportMapFragment mapFragment = SupportMapFragment.newInstance();
                //Adding the map to the relativeLayout placeholder
                ((FragmentActivity) mContext).getSupportFragmentManager().beginTransaction().add(backgroundRlMaps.getId(), mapFragment).commit();
                mapFragment.getMapAsync(RecyclerViewAdapter.this); }

单击后退按钮时,地图消失:

                back.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        ((FragmentActivity) mContext).getSupportFragmentManager().beginTransaction().remove(mapFragment).commit();
                        back.setVisibility(View.GONE);
                    }
                });

我的onMapReady方法非常简单:

@Override
public void onMapReady(GoogleMap googleMap) {
    Toast.makeText(mContext, "Map is ready", Toast.LENGTH_SHORT).show();
}

现在,当我第二次点击mapButton时,地图不会出现,但是会调用onMapReady,因为我可以看到toast信息。

当我再次点击mapButton时,有没有人为什么没有重新显示地图?

谢谢!

1 个答案:

答案 0 :(得分:0)

它只是一个片段,所以尝试使用show / hide而不是每次都重新创建一个新的mapfragment