2013-12-11 55 views
0

我必須碎片碎片包含地圖和其他一個以顯示用戶在地圖上單擊時引腳的詳細信息。當用戶單擊來自Details Fragment的後退按鈕時,我覆蓋後退按鈕再次顯示地圖。如何在碎片加載第二次時恢復映射對象

fragmentManager.beginTransaction().replace(R.id.content_frame, mapfragment).commit(); 

當我做這樣的地圖是reloading.I與addToBackStack也試過,但沒有任何luck.Can一個建議如何解決它..

回答

1

檢查this出來。您需要保存片段的狀態。

+0

謝謝。我會檢查它 – koti

+0

請讓我知道它是否有幫助。 – user1728071

1

使用下面的代碼:

getSupportFragmentManager().beginTransaction() 
          .add(detailFragment, "detail") 
          // Add this transaction to the back stack 
          .addToBackStack() 
          .commit(); 

取消已寫在onBackPressed什麼。

試着讓我知道。

0

創建SupportMapFragment時,請調用方法setRetainInstance()

public class MapActivity extends AppCompatActivity implements OnMapReadyCallback { 

private GoogleMap map; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.map); 
    FragmentManager fm = getSupportFragmentManager(); 
    SupportMapFragment smf = (SupportMapFragment) fm.findFragmentById(R.id.map); 
    smf.setRetainInstance(true); 
    smf.getMapAsync(this); 
} 

@Override 
public void onMapReady(GoogleMap googleMap) { 
    this.map = googleMap; 
    // put some markers 
} 

} 

欲瞭解更多信息請here

相關問題