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