我的所有片段都通过ActionBarActivity
( mainActivity )进行控制,在 mainActivity 中实现了DrawerLayout
并且所有子片段都被推送通过drawerLayout的列表项单击。我面临的问题是在通过抽屉推送片段之后我想将抽屉图标更改为ToolBar
的后退图标,以便用户可以导航到上一个片段并处理android.R.id的回调。回家在同一片段内或 mainActivity 。
答案 0 :(得分:11)
您已将Fragment
添加到后台堆栈,并在片段管理器中添加侦听器,如下所示
getSupportFragmentManager().addOnBackStackChangedListener(new FragmentManager.OnBackStackChangedListener() {
@Override
public void onBackStackChanged() {
if (getSupportFragmentManager().getBackStackEntryCount() > 0) {
getSupportActionBar().setDisplayHomeAsUpEnabled(true); // show back button
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed();
}
});
} else {
//show hamburger
getSupportActionBar().setDisplayHomeAsUpEnabled(false);
toggle.syncState();
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
drawerLayout.openDrawer(GravityCompat.START);
}
});
}
}
});