Как сделать чтобы в фрагменте не использовался тот же тулбар что и в активити?

468
05 февраля 2017, 12:05

У меня одно активити и несколько фрагментов, у всех фрагментах тот же тулбар что и в активвити. Как поменять ?

В фрагменьте :

 @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        inflater.inflate(R.menu.menu_log, menu);
    }
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        return false;
    }

в активити :

 public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.search_menu, menu);
        SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
        SearchView searchView = (SearchView) menu.findItem(R.id.search).getActionView();
        searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
        searchView.setOnQueryTextListener(searchQueryListener);
        return true;
}
  public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.logout:
                fragmentManager.beginTransaction().add(R.id.container, bFrag).commit();
                wallcome.setVisibility(View.INVISIBLE);
                mRecyclerView.setVisibility(View.INVISIBLE);
                fab.setVisibility(View.INVISIBLE);
                return true;
            default:
                break;
        }
Answer 1

Как я понял, вы хотите изменить меню в тулбаре, тогда можно воспользоваться функцией invalidateOptionsMenu(), которая позволяет обновить вид меню. Сделайте какую-нибудь переменную boolean CHECK = false, значение которой изменяется на true, когда вы нажали на логаут, и тогда функция onCreateOptionsMenu будет выглядеть примерно так:

    public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.ваше_меню, menu);
    MenuItem Item1 = menu.findItem(R.id.какой-то_итем1_в_вашем_меню);
    MenuItem Item2 = menu.findItem(R.id.какой-то_итем2_в_вашем_меню); 
    if (!CHECK){
        //логаут ещё не нажат, вид меню начальный
    }else{
       //на логаут нажали, скрыть нужную кнопку в меню или т.п. 
    }
    return super.onCreateOptionsMenu(menu);
}

Когда нажали на логаут, у вас, например запускается код вызова фрагмента, и после этого кода добавьте вызов функции invalidateOptionsMenu();

READ ALSO
android studio icon xml

android studio icon xml

Столкнулся с такой проблемой: есть иконка в XML, при тестирования она маленькая на устройстве(имеется виду размер иконки) при увеличении выходит...

509
Как сравнить строку и число?

Как сравнить строку и число?

Мой вопрос покажется не корректным (но придумать заголовок не получилось получше) Вот что мне нужно сделать: Вводить с клавиатуры числа и считать...

467
Column 'Rock' not found

Column 'Rock' not found

При попытке запустить метод возникает ошибка:

534