Android Studio 1.4
我有一個工具欄,在我的activity_main.xml
中充氣。 我有一個名爲main.xml
的菜單,它只能顯示1個圖標。在工具欄上顯示活動和片段的不同菜單選項
當用戶點擊打開一個片段。我有另一個菜單friends.xml
有2個圖標。
當我膨脹片段中的朋友菜單時,它仍然顯示main.xml
菜單中的圖標。
我認爲在工具欄上添加新的菜單會刪除現有的菜單。
這是片段的截圖,因爲您可以看到find圖標仍然存在。
<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>
這是我在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);
}
創建菜單而在我的片段我都這樣了,你可以看到我的代碼inflate friends.xml菜單。
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.friends, menu);
}
非常感謝您的任何建議,
「我認爲,在工具欄上膨脹的新菜單將刪除現有的菜單」這是無效的,總的菜單項= MenuItemsOfActivity + MenuItemsOfFragment – QAMAR
只是移動' @Override public boolean onCreateOptionsMenu(Menu menu){ getMenuInflater()。inflate(R.menu.main,menu); 超級回報。onCreateOptionsMenu(菜單); }在FirstFragment內部並在FirstFragment的onCreate()內部設置setHasOptionsMenu(true)..這應該起作用 – Droidwala
沒有必要在活動內部充氣菜單..只是做它片段明智的 – Droidwala