0

我正在使用材料设计(Android 支持 V7 AppCompat)并使用支持工具栏而不是操作栏。但是我注意到后退按钮消失了,在以前的Android版本中,当向后台堆栈添加一个片段事务时,自动添加了后退按钮,现在它消失了。我发现显示后退按钮的唯一方法是使用 Activity 并调用它。

有人发现并解决了这个问题吗?

谢谢!

编辑

我正在使用DrawerLayoutActionBarDrawerToggle,现在,我使用了给出的答案并使用了这个:

private FragmentManager.OnBackStackChangedListener mOnBackStackChangedListener = new FragmentManager.OnBackStackChangedListener() {
    @Override
    public void onBackStackChanged() {
        boolean displayHomeAsUpEnabled = getSupportFragmentManager().getBackStackEntryCount() > 0;
        getSupportActionBar().setDisplayHomeAsUpEnabled(displayHomeAsUpEnabled);
    }
};

FragmentManager它来自 android.support.v4。现在,当返回主屏幕时,“主页”(汉堡按钮)消失。我现在是因为“setDisplayHomeAsUpEnabled”它是假的......但是我如何再次显示主页按钮?在以前版本的Android上,只需添加后退堆栈并将后退堆栈设置为0就足以显示主页按钮和后退按钮。

谢谢

4

2 回答 2

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 库上,我不需要这样做来显示后退按钮并使其消失以显示主页按钮,

感谢你们!

于 2014-12-16T17:17:31.517 回答
0

使用ActionBar#setDisplayShowHomeEnabled

所以你可以像这样启用后退按钮:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    getSupportActionBar().setDisplayHomeAsUpEnabled(true);

    //...

}
于 2014-12-16T16:23:41.577 回答