【问题标题】:Menu not being inflated when a new instance of fragment is created创建片段的新实例时菜单未膨胀
【发布时间】:2021-12-23 17:04:48
【问题描述】:

我正在使用以下代码在片段中设置工具栏:

  val activity = activity as AppCompatActivity?
       activity?.run {
            setSupportActionBar(profileToolbar)
            supportActionBar?.setDisplayHomeAsUpEnabled(false)
            supportActionBar?.setDisplayShowHomeEnabled(false)
        }
        setHasOptionsMenu(true)

然后膨胀菜单:

  override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
    super.onCreateOptionsMenu(menu, inflater)
    inflater.inflate(R.menu.profile_menu, menu)
}

代码在一种情况下运行良好。就像我的项目有多个活动一样,当片段从主屏幕启动时,它工作正常,但从另一个屏幕启动时,它不会膨胀选项菜单

我们将不胜感激。

【问题讨论】:

    标签: android menu fragment android-toolbar android-appbarlayout


    【解决方案1】:

    改变这个:

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

    使用: setHasOptionsMenu(true);看完inflates-creates:

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onActivityCreated(savedInstanceState);
        setHasOptionsMenu(true);
    }
    

    【讨论】:

    • 试过但没用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多