我使用Material Design(Android Support V7 AppCompat)并使用支持工具栏而不是ActionBar。但我注意到,在以前版本的Android上,后退按钮已经消失,当向后堆栈添加片段交易时,会自动添加后退按钮,现在它已经消失了。我发现显示后退按钮的唯一方法是,它使用一个Activity并调用它。
有人找到并解决了这个问题吗?
谢谢!
修改
我正在使用 DrawerLayout 和 ActionBarDrawerToggle ,现在,我已经使用了给出并使用过的答案:
private FragmentManager.OnBackStackChangedListener mOnBackStackChangedListener = new FragmentManager.OnBackStackChangedListener() {
@Override
public void onBackStackChanged() {
boolean displayHomeAsUpEnabled = getSupportFragmentManager().getBackStackEntryCount() > 0;
getSupportActionBar().setDisplayHomeAsUpEnabled(displayHomeAsUpEnabled);
}
};
FragmentManager 来自android.support.v4。 现在,当返回主屏幕时,' Home' (汉堡按钮)消失。我现在是因为" setDisplayHomeAsUpEnabled"它是假的...但是如何再次显示主页按钮?,在以前版本的Android上,只需添加后台堆栈并将后台堆栈设置为0就足以显示主页按钮和后退按钮
由于
答案 0 :(得分:1)
好的,所以当使用 ActionBarDrawerToggle 时,我需要做的就是显示并消失后退按钮如下:
private FragmentManager.OnBackStackChangedListener mOnBackStackChangedListener = new FragmentManager.OnBackStackChangedListener() {
@Override
public void onBackStackChanged() {
boolean displayHomeAsUpEnabled = getSupportFragmentManager().getBackStackEntryCount() > 0;
if(displayHomeAsUpEnabled){
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}else{
getSupportActionBar().setDisplayHomeAsUpEnabled(false);
mDrawerToggle.syncState();
}
}
};
真的很奇怪,因为在原生版本或Android支持V4库中,我不需要这样做来显示后退按钮并消失它以显示主页按钮,
谢谢你们!
答案 1 :(得分:0)
使用ActionBar#setDisplayShowHomeEnabled
所以你可以像这样启用后退按钮:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
//...
}