2016-02-16 33 views
0

我正在處理FrameLayouts以支持加載不同片段的Activity。第一個片段是MapFragment,另一個片段是MapDownloadManagerFragment。這裏在FrameLayout上工作的地圖popBackStack()不起作用

我有一個關於popBackStack()方法的問題。 MapFragment不顯示任何地圖。它在popBackStack()執行後只顯示白色背景。

下面的代碼:

 


    private MapFragment mMapFragment = null; 
    private FragmentTransaction mFragmentTransaction; 
    private MapDownloadManagerFragment mMapDownloadManagerFragment; 

    protected void onCreate(Bundle savedInstanceState) { 

      if (mMapFragment == null) { 
       mMapFragment = new MapFragment(); 
      } 

      mFragmentTransaction = getFragmentManager().beginTransaction(); 
      mFragmentTransaction.add(R.id.main_frame_layout, mMapFragment, mFragmentID); 
      mFragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); 
      mFragmentTransaction.commit(); 

    } 

    private void onClickMenutItem() { 
mMapDownloadManagerFragment = new MapDownloadManagerFragment(); 

       mFragmentTransaction = getFragmentManager().beginTransaction(); 
       mFragmentTransaction.replace(R.id.main_frame_layout, mMapDownloadManagerFragment, mdmFragmentID); 
       mFragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); 
       mFragmentTransaction.addToBackStack(null); 
       mFragmentTransaction.commit(); 
    } 

@Override 
    public void onBackPressed() { 
     Log.d(TAG, "Back stack count " + getFragmentManager().getBackStackEntryCount()); 
     if(getFragmentManager().getBackStackEntryCount() == 0) { 
      finish(); 
     } else { 
      getFragmentManager().popBackStack(); 
     } 
    } 

 

有沒有誰遇到過這個問題的人?我需要你的幫助。提前致謝。

回答

1

現在我通過刪除當前的MapFragment並用新的MapFragment替換它來解決此問題。

mFragmentTransaction = getFragmentManager().beginTransaction(); 
      mFragmentTransaction.remove(mMapFragment); 

      mMapFragment = null; 
      mMapFragment = new MapFragment(); 
      mFragmentTransaction.add(R.id.main_frame_layout, mMapFragment, mFragmentID); 
      mFragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); 
      mFragmentTransaction.commit(); 

還在思考如何以最佳方式實現它。

相關問題