2012-10-29 30 views
2

我有回棧監聽器:監聽不適合片段回棧工作

getFragmentManager(). 
    addOnBackStackChangedListener(new OnBackStackChangedListener() { 

     @Override 
     public void onBackStackChanged() { 
      Log.d("MainActivity", "Change fragment"); 
     } 

    }); 

和兩個按鈕。事件的onClick爲第一個按鈕:

  getFragmentManager(). 
      beginTransaction(). 
      add(R.id.root, fragm). 
      commit(); 

事件的onClick爲第二個按鈕:

  getFragmentManager(). 
      beginTransaction(). 
      remove(fragm).commit(); 

但聽者不工作。函數onBackStackChanged不會調用。

回答

6

有人猜測,因爲第一筆交易還沒有通過addToBackStack(...)的呼叫被添加到後臺堆棧中。所以請嘗試:

 getFragmentManager(). 
     beginTransaction(). 
     add(R.id.root, fragm). 
     addToBackStack(null). 
     commit();