2015-08-17 36 views
0

我有MainActivity它擴展了android.support.v7.app.ActionBarActivity和工具欄與溢出菜單中的搜索,過濾器圖標和其他選項,當我加載某個片段時,我希望搜索圖標消失並顯示過濾器圖標。正如我在下面的代碼中,我試圖隱藏搜索圖標和顯示過濾器圖標,但只有當我點擊溢出菜單圖標時,工具欄纔會更新。我很困惑我要去哪裏錯了...任何建議表示讚賞,在此先感謝。Android工具欄不更新,直到在溢出菜單上點擊圖標

MY_FRAGMENT.Java

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    position = getArguments().getInt(ARG_POSITION); 
    return rootView; 
} 

@Override 
public void onActivityCreated(Bundle savedInstanceState) { 
} 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setHasOptionsMenu(true); 
    Log.v("oncreate", ""); 
} 

@Override 
public void onPrepareOptionsMenu(Menu menu) { 
    Log.v("onPrepareOptionsMenu", ""); 
    AppCompatActivity activity = (AppCompatActivity) getActivity(); 
    menu.findItem(R.id.action_filter).setVisible(true).setEnabled(true); 
    menu.findItem(R.id.action_notification).setVisible(false).setEnabled(false); 
    activity.invalidateOptionsMenu(); 
    menu.findItem(R.id.action_notifications).setVisible(false).setEnabled(false); 
    return; 
} 

回答

0

變化

activity.invalidateOptionsMenu(); 
activity.onCreateOptionsMenu(menu); 

activity.onCreateOptionsMenu(menu); 
activity.invalidateOptionsMenu(); 

我希望它能幫助!

+0

我們應該調用這個嗎? 'activity.onCreateOptionsMenu(menu);' – Emil

+0

感謝您的建議@Boss,activity.onCreateOptionsMenu(menu);實際上沒有必要調用,按照文檔invalidateOptionsMenu()通常會做的伎倆,但由於某種原因它不適合我...請檢查更新的代碼。 –

相關問題