2017-07-31 58 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"/> 
相關問題