Android Studio 1.4
我有一个工具栏,我在我的
activity_main.xml
中填充它。
我有一个名为main.xml
的菜单,只有一个图标显示在上面。当用户点击打开片段时,我有另一个名为
friends.xml
的菜单,其中有两个图标。当我在片段中填充好友菜单时,它仍然显示来自
main.xml
菜单的图标。我以为在工具栏上填充新菜单会删除现有菜单。
这是main.xml菜单的截图。查找图标被显示
![enter image description here](https://istack.dev59.com/KdZGf.webp)
![enter image description here](https://istack.dev59.com/DiPPJ.webp)
activity_main.xml
<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);
}
在我的代码片段中,可以看到我正在加载friends.xml菜单。
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.friends, menu);
}
非常感谢任何建议,
@Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return super.onCreateOptionsMenu(menu); }
移动到 FirstFragment 中,并在 FirstFragment 的 onCreate() 方法中添加setHasOptionsMenu(true)
。这样应该就可以了。 - PunitD