在android中管理工具栏的导航和从片段到片段的后退按钮 [英] Manage toolbar's navigation and back button from fragment to fragment in android
问题描述
我的所有片段都通过 ActionBarActivity
( mainActivity )进行控制,在 mainActivity 内 DrawerLayout 已实现,并且所有子片段都通过drawerLayout的列表项单击进行推送。我面临的问题是在通过抽屉推送片段之后我想将抽屉图标更改为 ToolBar
的后退图标,以便用户可以导航到上一个片段并处理android.R.id.home的回调要么在同一个片段内,要么在 mainActivity 内。
All of my fragments are controlled through ActionBarActivity
(mainActivity), inside mainActivity a DrawerLayout
is implemented and all the child fragments are pushed through drawerLayout's list item click. The problem that I'm facing is after pushing a fragment through drawerLayout I want to change the drawer icon into back icon of ToolBar
so that user can navigate to previous fragment and to handle the callback of android.R.id.home either inside the same fragment or inside the mainActivity.
推荐答案
您已将 Fragment
添加到后台堆栈,并在片段管理器中添加侦听器,如下所示
You have add Fragment
to back stack and add listener in fragment manager like this
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);
}
});
}
}
});
这篇关于在android中管理工具栏的导航和从片段到片段的后退按钮的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!