安卓:第二次打开片段时工具栏上的"up"按钮消失



我创建了一个带有导航抽屉的android应用程序。为此,我使用了android工作室模板导航抽屉活动。要编译appbar和导航抽屉,它使用ActionBarDrawerToggle类。

在我的活动中,我在不同的片段之间切换。其中一个具有层次结构,包含更详细的片段。这是一个类似于这个问题的结构。

因此,当你打开第一个片段时,你可以看到抽屉的开关。然后单击一个列表项,它会用更详细的第二个片段替换第一个片段。之后会出现向上按钮,而不是原来的抽屉切换。当你点击向上按钮时,你会回到第一个片段,向上按钮会变回抽屉切换。

当你再次打开第二个片段时,没有抽屉开关,也没有向上按钮。当你按下平板电脑的后退按钮时,切换将再次出现,但直到你重新启动应用程序,向上按钮才会显示。

要将抽屉切换更改为向上按钮,我在第二个片段的onCreate中使用以下命令:

第二个片段onCreate():

//let the drawer toggle disappear
activity.toggle.setDrawerIndicatorEnabled(false); 
//let the up button appear
activity.getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

向上按钮的功能由以下命令组成:

activityonCreate():

toggle.setToolbarNavigationClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                onBackPressed();
            }
});

活动onBackPressed():

int count = getFragmentManager().getBackStackEntryCount();
if (count < 1) {
     super.onBackPressed();
     Intent intent = new Intent(Intent.ACTION_MAIN);
     intent.addCategory(Intent.CATEGORY_HOME);
     startActivity(intent);
} else {
     getFragmentManager().popBackStack();
     if (count == 1) {
          toggle.setDrawerIndicatorEnabled(true);
     }
}

打开我在第一个片段中用这个代码制作的第二个片段:

第一个片段ownOpenMethod():

activity.getFragmentManager().beginTransaction()
     .replace(R.id.content_frame, FirstFragment.newInstance())
     .addToBackStack(null).commit();

用户Wolfram Rittmeyer在这里报告了这个问题:

使用工具栏时,我不得不将显示选项切换为不使用与此同时,家里也一样。否则,setDisplayOptions()方法android.support.v7.internal.wiget包)不会重新创建图标当第二次进入同一片段时。就把这个留在这里因为当其他人也偶然发现这个问题时。

但我不明白他的意思。有人有同样的问题或任何示例代码如何修复?

我想通了!这意味着在中

@Override
public void onBackPressed() {
...
}

你需要包括这个:

getSupportActionBar().setDisplayHomeAsUpEnabled(false);

因此,在第二次,你的背部图标将出现。

相关内容

  • 没有找到相关文章

最新更新