2017-04-12 19 views
0

もう片方のフラグメントのメニュー項目の表示を避ける必要があります。 これはフラグメントAにあります。メニュー項目が必要です。そして断片Bでは私はそれを必要としません。しかし、フラグメントAからフラグメントBへの移行をしようとすると、フラグメントAのメニュー項目がフラグメントBに表示されます。どのようにして競合を解決できますか?あなたのフラグメントのあるフラグメントのメニュー項目が他のフラグメントに表示されています

+0

このhttps://developer.android.com/guide/topics/ui/menus.html#options-menuはおそらくあなたの断片にonCreateOptionsMenu' 'の誤用により –

+0

チェックこの[リンク](http://stackoverflow.com/aを引き起こしている - Androidデベロッパーサイトで説明したように活動およびフラグメントは、自分自身の別々のメニューを持つことができます/ 21498812/5882539) –

答えて

3

私もこの問題に直面し、私はのonCreateメソッドでは、この

を行うことによって、それを解決するには、この

を行います
@Override 
public void onCreate(Bundle savedInstanceState) { 
    setHasOptionsMenu(true); 
    super.onCreate(savedInstanceState); 
} 
しかし、

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setHasOptionsMenu(false); 
} 

:onCreateOptionMenuで

が、これは

あなたが任意のメニューオプションを表示したくないフラグメントで
@Override 
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
    menu.clear(); 
} 
0

Possible duplicate?

@Override public void onPrepareOptionsMenu(Menu menu) { 
    MenuItem item = menu.findItem(R.id.action_search); 
    item.setVisible(false); 
} 

とのonCreate()内

setHasOptionsMenu(true); 
1

、あなたがこのようなのonCreate()でsetHasOptionsMenu(false);、 が必要です表示されているメニューは、非表示にしたいMainActivityに属しています。それが常に示されている理由です。あなたはフラグメントレベルでメニューをコントロールしたいので、私の提案は、アクティビティからメニューコードを削除し、それをあなたのフラグメントに実装することです。

関連する問題