缺少后退按钮材质主题

时间:2014-12-16 16:05:33

标签: java android material-design material-theme

我使用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就足以显示主页按钮和后退按钮

由于

2 个答案:

答案 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);

    //...

}