我有一个名为AppCompatActivity的MainActivity活动,其代码放在onCreate方法上,以显示/隐藏返回和菜单按钮
getSupportFragmentManager().addOnBackStackChangedListener(
new FragmentManager.OnBackStackChangedListener() {
@Override
public void onBackStackChanged() {
toggle.setDrawerIndicatorEnabled(
getSupportFragmentManager().getBackStackEntryCount() == 0);
getSupportActionBar().setDisplayHomeAsUpEnabled(
getSupportFragmentManager().getBackStackEntryCount() > 0);
}
});这是我唯一的活动,我使用片段作为不同的视图。“后退”按钮在被批准时显示得很完美,但当我单击它时却什么也不做。
我必须在片段上放些代码吗?我检查过许多其他类似的问题,但我无法发现漏掉了什么
编辑
许多解决方案要求重写片段或活动上的onOptionsItemSelected,但单击工具栏上的后退按钮时不会调用此方法。
编辑2
如果我评论行
toggle.setDrawerIndicatorEnabled(getSupportFragmentManager().getBackStackEntryCount() == 0);然后单击“后退”按钮打开导航菜单。
发布于 2016-01-12 03:55:09
您必须手动处理home按钮,如下所示:catch toolbar home button click event
然后从后台加载前一个片段:Get Fragment from backstack
https://stackoverflow.com/questions/34734827
复制相似问题