2014-03-03 37 views

回答

16

這絕對是「正常」。它可能不適合你的特定用例,但它絕對是有意的行爲。

看看源的android.support.v4.app.Fragment.setHasOptionsMenu():

public void setHasOptionsMenu(boolean hasMenu) { 
    if (mHasMenu != hasMenu) { 
     mHasMenu = hasMenu; 
     if (isAdded() && !isHidden()) { 
      mActivity.supportInvalidateOptionsMenu(); 
     } 
    } 
} 

你可以看到它調用supportInvalidateOptionsMenu()它的活動,最終導致onCreateOptionsMenu()被稱爲上活動和所有的碎片。當從活動的片段管理器添加/刪除片段時,框架如何管理更新選項菜單。

+1

謝謝,它確實使我目前的生活困難,但至少我知道這是預期的行爲。 – facetoe

相關問題