选项卡式活动中的MapFragment获取空值

时间:2017-07-31 09:15:01

标签: android android-fragments supportmapfragment mapfragment

我想在标签式活动中加载地图片段而不显示它,以便我可以稍后启动地图片段 我尝试过使用getFragmentManager().findFragmentbyId()getSupportFragmentManager().findFragmentbyId()无效。

我也试过从SectionPagerAdapter返回SupportMapFragment.newInstance()但是它用我不想要的地图片段替换了整个页面。

我也试过

MapFragment mapFragment = MapFragment.newInstance();
          mapFragment.getMapAsync(new OnMapReadyCallback() {
                @Override
                public void onMapReady(GoogleMap googleMap) {
                    Log.d("intro", "onMapReady");
                }
            });

但这也不起作用。 帮助我实现这一目标。

1 个答案:

答案 0 :(得分:0)

我做到了。 动态创建地图片段,然后将其放入布局(在我的情况下为FrameLayout)。将该布局的可见性设置为“已消失”。

        SupportMapFragment mapFragment = SupportMapFragment.newInstance();
        FragmentManager fm = getChildFragmentManager();
        fm.beginTransaction().replace(R.id.map1, mapFragment).commit();
        mapFragment.getMapAsync(new OnMapReadyCallback() {
            @Override
            public void onMapReady(GoogleMap googleMap) {
                Log.d("intro", "onMapReady");
            }
        }); 
XML中的

<FrameLayout
    android:id="@+id/map1"
    android:visibility="gone"
    android:layout_width="1dp"
    android:layout_height="1dp"/>