2016-08-16 2 views
1

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

ответ

1

Вызов getActivity().invalidateOptionsMenu() снова вызывает onPrepareOptionsMenu(), где вы можете загрузить/не загружать меню на основе ваших условий.

0

Просто хочу добавить еще одну вещь, если вы хотите снова или выключить меню, даже не раздувая их. Вы можете использовать параметр меню 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); 

    }