首页 > 解决方案 > SupportActionBar 后退/主页按钮必须单击两次才能工作

问题描述

我有一个包含两个片段的活动:Fragment1 和 Fragment2。片段 1 上有一个按钮,用于显示片段 2,当它出现时,我在 SupportActionBar 中显示返回/主页按钮。但是,当片段 2 可见并且我想返回片段 1 时,我必须每次单击返回/主页按钮两次才能看到它实际切换。

为什么我必须点击两次?

注意:我的日志命令打印两次,但后退按钮操作只发生一次。

我的活动:

在 OnCreate

    Globals.actionBar = this.getSupportActionBar();
    Globals.actionBar.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
    Globals.actionBar.setTitle("");

然后在文件中进一步向下:

    @Override
    public boolean onOptionsItemSelected(@NonNull MenuItem item) {
        switch (item.getItemId()) {
            case android.R.id.home:
                Log.d("~navbar~","clicked Back Button");
                super.onBackPressed();
                return true;
        }
        Log.d("~navbar~","clicked: " + item.getItemId());
        return super.onOptionsItemSelected(item);
    }

片段 1:在 OnCreate 中

        Globals.actionBar.setTitle("Fragment 1");

在片段 2 中:在 OnCreate 中:

        Globals.actionBar.setTitle("Fragment 1");
        Globals.actionBar.setDisplayHomeAsUpEnabled(true);
        Globals.actionBar.setDisplayShowHomeEnabled(true);

注意:我将 actionBar 设为全局变量。

标签: javaandroid-fragmentsandroid-actionbarback-stack

解决方案


推荐阅读