2012-06-28 1 views
0

У меня есть 3 Fragment s, которые в обычном (малом) макете находятся в отдельных действиях. Они должны предоставить опции в малом макете.Не вызывайте onCreateOptionsMenu в фрагменте на большом расстоянии

В большой компоновке у меня есть 3 фрагмента в одном действии, заставляя меню заполняться кнопками, раздутыми всеми тремя фрагментами. Как я могу предотвратить это, и только позволить активности раздувать меню параметров, сохраняя при этом все функции на более мелких устройствах?

-Edit-

Таким образом, каждый фрагмент использует следующий код:

@Override 
public void onCreate(Bundle savedInstanceState){ 
    super.onCreate(savedInstanceState); 
    /* Some code */ 
    setHasOptionsMenu(true); 
    /* Some code */ 
} 

@Override 
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater){ 
    inflater.inflate(R.menu.mymenu, menu); 
} 

Когда все три фрагмента показаны все фрагменты выполнения onCreateOptionsMenu() и все элементы появляются три раза. Я хочу, чтобы родительский Activity взял на себя ответственность за создание меню опций.

+0

Вы должны добавить соответствующий код для того, где вы создаете меню. –

+0

См. Править в вопросе :) – nhaarman

ответ

2

В каждом фрагменте я бы построил все меню. Я сделал, чтобы добавить в Фрагменты только их конкретные пункты меню, а в родительской операции я бы создал общие элементы.

0

Вы можете использовать метод isVisible() для каждого Fragment, чтобы динамически проверять, что отображается, а затем соответствующим образом добавлять в действие.

+0

Пожалуйста, просмотрите вопрос – nhaarman