gpt4 book ai didi

android - 如何在 Fragment 中设置工具栏的菜单

转载 作者:行者123 更新时间:2023-11-30 00:28:52 28 4
gpt4 key购买 nike

我有一个简单的布局,其中包含一个主要的 Activity、一个 ViewPager 和一个带有 4 个按钮的 BottomNavigationView。点击每个按钮只会更改 ViewPager 上的当前项目,从而加载正确的 Fragment

每个 fragment 都有自己的 android.support.v7.widget.Toolbar,我的目标是让每个 fragment 在工具栏上显示不同的菜单项。我尝试了几种方法,但无法使任何菜单项显示在工具栏中。这是我的代码:

fragment .java

    @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_category, container, false);

Toolbar toolbar = (Toolbar) view.findViewById(R.id.main_toolbar);
toolbar.setTitle("Fragment title");

AppCompatActivity activity = (AppCompatActivity) getActivity();
activity.setSupportActionBar(toolbar);
setHasOptionsMenu(true);
}

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.menu, menu);
super.onCreateOptionsMenu(menu, inflater);
}

菜单.xml

<?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/action_add"
android:enabled="true"
android:visible="true"
android:icon="@drawable/ic_add"
android:title="Add"
app:showAsAction="always" />
</menu>

Activity本身没有菜单相关的代码。有什么想法我想念的吗?

最佳答案

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_category, container, false);
Toolbar toolbar = (Toolbar) getactivity().findViewById(R.id.main_toolbar);
((ActionBarActivity)getActivity()).setSupportActionBar(mToolbar);
setHasOptionsMenu(true);
}

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.menu, menu);
super.onCreateOptionsMenu(menu, inflater);
}

关于android - 如何在 Fragment 中设置工具栏的菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44860175/

28 4 0