Eu tenho uma barra de ferramentas e também uma gaveta de navegação. Quando eu inicio meu aplicativo, a barra de ferramentas e a gaveta de navegação são criadas. Quando eu clico em itens na gaveta de navegação, ele inicia novos fragmentos e mantém a mesma barra de ferramentas. Como eu basicamente adiciono itens de menu à barra de ferramentas, como pesquisar, adicionar, editar quando eu inicio fragmentos específicos? Não os quero no início do programa, mas sim criados dinamicamente. Além disso, como seria capaz de clicar nesses botões e fazer com que iniciem outros fragmentos. Eu quero isso em um fragmento, o botão de edição na barra de ferramentas faz uma coisa específica em comparação com o botão de edição em outro fragmento. Obrigado!
Menu_toolbar:
<?xml version="1.0" encoding="utf-8"?>
<menu
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:id="@+id/edit"
android:orderInCategory="1"
android:title="Edit"
app:showAsAction="always"
android:icon="@drawable/pencil_icon"/>
<item android:id="@+id/add"
android:orderInCategory="1"
android:title="Add"
app:showAsAction="always"
android:icon="@drawable/plus_icon"/>
Barra de ferramentas:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="55dp"
android:background="#10a1ff"
android:title="Home"
/>
fonte
menu.clear()
emonCreateOptionsMenu
- caso contrário você vai herdar o menu do pai, também.Veja como criar o menu dinamicamente: http://www.101apps.co.za/index.php/articles/using-toolbars-in-your-apps.html
Editado:
fonte
actionBarToolbar.setOnMenuItemClickListener()
para controlar as ações dos itens de menu.onOptionsItemSelected()
não é chamado nesta situação.A melhor maneira de fazer isso:
1. Encontre a barra de ferramentas em Activity e defina-a como supportActionBar.
2. Em seguida, será muito fácil lidar com menus de opções para diferentes fragmentos em uma mesma atividade. Faça o seguinte em cada fragmento como desejar:
Na chamada do método OnCreateView
E por fim,
E para gerenciar os itens de menu, clique, temos onOptionsItemSelected:
fonte
Substitua o
onCreateOptionsMenu
método em cada fragmento.fonte
setTitle()
pode adicionar títulos.A opção mais simples é fazer
fonte
Eu resolvi esses problemas corretamente. Minha solução é o seguinte código:
fonte
Eu tive o mesmo problema e queria substituir o menu da barra de ferramentas de acordo com o fragmento exibido.
O problema que estou enfrentando agora é que o menu foi adicionado ao anterior.
Para mostrar apenas o menu do fragmento, sugiro:
Espero que ajude.
fonte
Abaixo estão as etapas para mostrar diferentes opções de menu com diferentes fragmentos.
Etapa 1: chame setHasOptionsMenu (true)
Passo 2: Inflar seus itens de menu de opções relacionados ao fragmento.
fonte
Dentro do XML adicione esta linha
fonte
Usando o novo MaterialToolbar , é muito fácil criar um menu flutuante e usá-lo para:
e, em seguida, no código para definir os Ouvintes OnCLick, basta adicionar isto:
fonte