我在活动中有一个tablayout,navigationdrawer和工具栏。 向viewpager添加了3个片段,并将viewpager添加到tablayout: 我活动的代码段:
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
viewPager = (ViewPager) findViewById(R.id.viewpager);
setupViewPager(viewPager);
tabLayout = (TabLayout) findViewById(R.id.tabs);
tabLayout.setupWithViewPager(viewPager);
现在在每个片段中,我必须在工具栏中显示不同的选项: 所以我试着像我这样访问片段中的工具栏:
public View onCreateView(LayoutInflater inflater,
@Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
_context = getActivity();
mainView = inflater.inflate(R.layout.frag1, container, false);
mToolbar =(Toolbar) mainView.findViewById(R.id.app_bar);
mToolbar.setTitle("");
toolbarTitle = (TextView) getActivity().findViewById(R.id.toolbar_title);
toolbarTitle.setText("Fragment1");
toolbarTitle.setSelected(true);
AppCompatActivity activity = (AppCompatActivity) getActivity();
activity.setSupportActionBar(mToolbar);
}
在onCreateOptionsMenu(菜单菜单,MenuInflater inflater)中夸大了所需的菜单 但不要按照工具栏中的菜单进行充气。我们如何更改Fragment中的工具栏选项。
答案 0 :(得分:1)
这对我有用。这就是我在onCreate中所拥有的一切。 (可刷新是我自己的界面)。
public class SummaryFragment extends Fragment implements Refreshable {
@Override
public void onCreate(Bundle savedInstanceState) {
setHasOptionsMenu(true);
super.onCreate(savedInstanceState);
}
这就是我给菜单充气的地方。
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.save, menu);
super.onCreateOptionsMenu(menu, inflater);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.save:
{
File csvFile = saveResults();
etc...
它现在已经消失,但我的MainActivity中有一个不同的菜单,当我的摘要标签处于活动状态时,这两个菜单都存在。