我有SherlockFragmentActivity與3片段和ViewPager之間滑動(除了ActionBar)。OnCreateOptionsMenu被稱爲錯誤的片段
每SherlockFragment都有自己的菜單,看起來像這樣:
public class MyFragment1 extends SherlockFragment {
private Menu menu;
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
setHasOptionsMenu(true);
}
//...
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.fr1, menu);
super.onCreateOptionsMenu(menu, inflater);
this.menu = menu;
}
//...
}
其他片段類看起來相似。
你知道,ViewPager在第一次活動啓動時實例化兩個片段。因此,首先執行第一個片段的OnCreateView()
,然後執行第一個片段的OnCreateOptionsMenu()
,然後執行第二個片段的OnCreateView()
,然後執行第一個片段的再一次的OnCreateOptionsMenu()
!
請幫助,我需要了解我做錯了什麼。
你如何處理菜單通貨膨脹? –
@DanielBo你是什麼意思?在我的活動中,我保留默認的OnCreateOptionsMenu()實現。 –
如何觸發onCreateOptionsMenu,或者viewpager如何知道何時膨脹另一個菜單?我每次調用我的選項菜單onPageSelected被調用,然後onCreateOptionsMenu然後告訴當前顯示的片段來膨脹它的菜單,就像一個魅力:) –