为了账号安全,请及时绑定邮箱和手机立即绑定

设置后清除工具栏菜单(启动活动时)

设置后清除工具栏菜单(启动活动时)

翻翻过去那场雪 2022-12-15 15:02:52
工具栏菜单在片段中膨胀,但随后被清除。首次创建(或旋转)活动时,工具栏菜单会在片段中正确膨胀,但在显示之前会被清除。我在我的片段中设置了工具栏菜单onActivityCreated,它在活动中保持设置状态onResume。我发现的下一个电话是在onCreateOptionsMenu活动中,但此时toolbar.getMenu().size() = 0介于两者之间的某处onResume,onCreateOptionsMenu工具栏菜单正在重置。编辑:我不确定重现它需要什么,但这里是相关代码的全部(?)。活动:    private Toolbar toolbar;    private DrawerLayout drawer;    private ActionBarDrawerToggle toggle;    private FloatingActionButton fab;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.drawer_main);        toolbar = findViewById(R.id.toolbar);        setSupportActionBar(toolbar);        fab = findViewById(R.id.main_fab);        drawer = findViewById(R.id.drawer_layout);        toggle = new ActionBarDrawerToggle(this, drawer,toolbar,R.string.nav_drawer_open,R.string.nav_drawer_close);        drawer.addDrawerListener(toggle);        NavigationView navigationView = findViewById(R.id.nav_view);        navigationView.setNavigationItemSelectedListener(this);        if (savedInstanceState == null) {            showFragment(ScheduleFragment.newInstance());        }    }    @Override    public boolean onOptionsItemSelected(MenuItem item) {        if(toggle.onOptionsItemSelected(item)) {            return true;        }        return super.onOptionsItemSelected(item);    }    @Override    protected void onPostCreate(Bundle savedInstanceState) {        CharSequence retainTitle = toolbar.getTitle();        super.onPostCreate(savedInstanceState);        toggle.syncState();        toolbar.setTitle(retainTitle);    }
查看完整描述

1 回答

?
烙印99

TA贡献1829条经验 获得超13个赞

我当前发布的代码中的问题是该行setSupportActionBar(toolbar);

这不是必需的,实际上导致了上述令人不安的生命周期问题。


查看完整回答
反对 回复 2022-12-15
  • 1 回答
  • 0 关注
  • 48 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信