2017-07-31 62 views
-1

我想在选项卡式活动中加载地图片段而不显示它,因此我可以以后立即启动地图片段。
我试过使用getFragmentManager().findFragmentbyId()getSupportFragmentManager().findFragmentbyId()没有工作。选项卡式活动中的MapFragment获取空值

我也曾尝试从SectionPagerAdapter返回SupportMapFragment.newInstance(),但随后它会用我不想要的地图片段替换整个页面。

我也曾尝试

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

但也不能正常工作。 帮助我做到这一点。

回答

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"/> 
相关问题