2016-08-16 8 views
1

特定のユーザーアクションに従って、実行時にツールバーのオーバーフローメニュー全体を有効/無効にしたいとします。これはすべて同じフラグメント内にあります。私は、条件が成立した場合にonPrepareOptionsMenu()から戻ってみました。ユーザーが触れるとすぐに3つのドットアイコンが隠れています。しかし、私はオプションメニューを再び表示する方法を理解できません。オーバーフローメニュー全体を動的に有効/無効にする方法は?

答えて

1

getActivity().invalidateOptionsMenu()を呼び出すと、onPrepareOptionsMenu()が再度呼び出されます。ここでは、条件に基づいてメニューをロード/ロードできません。

0

メニューを再表示したり隠したりしたい場合は、もう1つ追加するだけです。あなたはこのようなoncreateoptionsメニューパラメータを使うことができます

メニューオーバーフロー;

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 

    getMenuInflater().inflate(R.menu.mymenu, menu); 
    this.overflow = menu; 
    return super.onCreateOptionsMenu(menu); 
} 

を入力し、インデックスに従ってメニュー項目を表示または非表示にする機能を作成します。例えば、

public void hideorShowMenuItems(boolean bool){ 
     overflow.getItem(1).setVisible(bool); 
     overflow.getItem(2).setVisible(bool); 
     overflow.getItem(3).setVisible(bool); 

    } 
関連する問題