Android Studio 1.4
Ho una barra degli strumenti che gonfio nel mio activity_main.xml
. Ho un menu chiamato main.xml
che viene gonfiato con solo 1 icona da visualizzare su di esso.Mostra diverse opzioni di menu sulla barra degli strumenti per attività e frammento
Quando l'utente fa clic per aprire un frammento. Ho un altro menu friends.xml
che ha 2 icone.
Quando si gonfia il menu degli amici nel frammento visualizza ancora l'icona dal menu main.xml
.
Ho pensato che il gonfiaggio di un nuovo menu sulla barra degli strumenti avrebbe rimosso il menu esistente.
Questa è una schermata del menu main.xml. Viene visualizzata l'icona di ricerca
Questa è la schermata del frammento come si può vedere l'icona trova è ancora lì.
activity_main.xml
con barra degli strumenti inclusi
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer_layout"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
xmlns:app="http://schemas.android.com/apk/res-auto">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<include
android:id="@+id/tbMain"
layout="@layout/app_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true"/>
</LinearLayout>
</android.support.v4.widget.DrawerLayout>
Ecco il mio codice per creare il menu in MainActivity.java
private void setupToolBar() {
mToolbar = (Toolbar)findViewById(R.id.tbMain);
setSupportActionBar(mToolbar);
getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
return super.onOptionsItemSelected(item);
}
E nel mio frammento ho questo, come si può vedere io sono gonfiando il menu friends.xml.
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.friends, menu);
}
Molte grazie per qualsiasi suggerimento,
"Ho pensato che gonfiare un nuovo menu nella barra degli strumenti eliminerebbe il menu esistente" questo non è valido, totale Voci del menu = MenuItemsOfActivity + MenuItemsOfFragment – QAMAR
basta spostare ' @Override booleano pubblico suCreateOptionsMenu (Menu menu) { getMenuInflater(). Gonfia (R.menu.main, menu); return super.onCreateOptionsMenu (menu); } all'interno di FirstFragment e fai setHasOptionsMenu (true) all'interno di onFragment's onCreate() .. Questo dovrebbe funzionare – Droidwala
Non c'è bisogno di gonfiare il menu all'interno dell'attività .. basta farlo frammentare saggia – Droidwala