我有一个包含许多片段的活动,它使用操作栏和导航抽屉。它启用了“home as up”。我已经实现了正确的逻辑,只有顶层片段显示操作栏抽屉切换图标,其他片段显示箭头。我通过以下方式实现了这一点:

mDrawerToggle.setDrawerIndicatorEnabled(false);
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED, mDrawerList);

现在旧的v4支持库actionBarDrawerToggle已被弃用。我已经切换到v7版本和新的Toolbar以获得材料设计外观。之后,当抽屉打开时,“向上”箭头将正确显示,但当执行上述代码时,它将完全消失。
是支持库中的错误还是我必须做一些不同的事情来显示“向上”箭头而不是抽屉指示器?

最佳答案

您是否尝试使用getV7DrawerToggleDelegate().getThemeUpIndicator ()设置指示器的主题,并在禁用指示器后进行设置?
因为当指示器被禁用时ActionBarDrawerToggle会尝试设置上一个指示器。
来源:

public void setDrawerIndicatorEnabled(boolean enable) {
    if (enable != mDrawerIndicatorEnabled) {
        if (enable) {
            setActionBarUpIndicator((Drawable) mSlider,
                    mDrawerLayout.isDrawerOpen(GravityCompat.START) ?
                            mCloseDrawerContentDescRes : mOpenDrawerContentDescRes);
        } else {
            setActionBarUpIndicator(mHomeAsUpIndicator, 0);
        }
        mDrawerIndicatorEnabled = enable;
    }
}

编辑:
对于ActionBarDrawerToggle,您应该使用ActionBarActivity

07-27 20:49