首页 > 解决方案 > 菜单在片段中不可见

问题描述

我有一个片段,其中包含我尝试调用 setHasOptionsMenu(true);的菜单onCreate()onCreateView()并将 a 设置toolbar为我的Actionbar. 我已经在这里解决了所有相同的问题,但似乎没有一个解决方案对我有用!我尝试更改主题 menu.clear() 并从onCreateOptions()Activity返回 true

    @Override
    public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setHasOptionsMenu(true);

            }


            @Override
            public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                     Bundle savedInstanceState) {

                setHasOptionsMenu(true);

                // Inflating view layout

                layout = inflater.inflate(R.layout.side_panel, container,false);
                toolbar = layout.findViewById(R.id.toolbar);

                ((AppCompatActivity)getActivity()).setSupportActionBar(toolbar);


                 return layout;
            }


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

            @Override
            public boolean onOptionsItemSelected(MenuItem item) {
                return super.onOptionsItemSelected(item);
            }

            @Override
            public void onActivityCreated(@Nullable Bundle savedInstanceState) {
                super.onActivityCreated(savedInstanceState);
            }

标签: androidandroid-fragmentsmenuandroid-actionbar

解决方案


如果您在 XML 文件中声明了 Toolbar,那么试试这个首先使用 findViewByid() 获取对 Toolbar 的引用,然后扩充您的菜单

 mToolbar.inflateMenu(R.menu.main_menu);

推荐阅读