Android 如何在Appcompat 22中从汉堡图标动态更改为向上图标

Android 如何在Appcompat 22中从汉堡图标动态更改为向上图标,android,android-support-library,android-toolbar,android-appcompat,Android,Android Support Library,Android Toolbar,Android Appcompat,我想将工具栏中的汉堡包图标更改为Up图标(“在AppCompt 22中,他们在主主题上搞砸了。还有getSupportActionBar()。setDisplayHomeAsUpEnabled(true);现在不再做任何事情。除非您支持legacy,否则我强烈建议不要使用setSupportActionbar,直接在工具栏上执行所有调用。这是正确的处理方法 若要修复主题错误,请将navigationIcon添加到主题中。您也可以直接在工具栏上执行此操作,但随后您必须逐个处理 <st

我想将工具栏中的汉堡包图标更改为Up图标(“在AppCompt 22中,他们在主主题上搞砸了。还有getSupportActionBar()。setDisplayHomeAsUpEnabled(true);现在不再做任何事情。除非您支持legacy,否则我强烈建议不要使用
setSupportActionbar
,直接在工具栏上执行所有调用。这是正确的处理方法

若要修复主题错误,请将navigationIcon添加到主题中。您也可以直接在工具栏上执行此操作,但随后您必须逐个处理

    <style name="Theme.MyApp.Base" parent="Theme.AppCompat.Light.NoActionBar" >
        <item name="navigationIcon">@drawable/abc_ic_ab_back_mtrl_am_alpha</item>
    </style>

现在,在两者之间动态切换非常容易。如果您希望显示汉堡图标并控制导航抽屉,则
drawerToogle.setDrawerIndicatorEnabled(true);
。如果您想让它显示导航图标,并让上面的侦听器在按下时被调用,则调用
drawerToogle.setDrawerIndicatorEnabled(false)

我也遇到了同样的问题。似乎22更新也出现了这种情况,因为它以前工作正常。我认为这里有点不正确,可能是打字错误。工具栏单击侦听器必须位于工具栏上,而不是抽屉切换上。以下是正确的版本:mToolBar.setToolbarNavigationClickListener(新OnClickListener(){@Override public void onClick(视图v){onBackPressed();}}});
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
if (toolbar != null) {
    setSupportActionBar(toolbar);
}
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_HOME_AS_UP | ActionBar.DISPLAY_SHOW_TITLE);
compile 'com.android.support:support-v4:22.1.0'
compile "com.android.support:appcompat-v7:22.1.0"
    <style name="Theme.MyApp.Base" parent="Theme.AppCompat.Light.NoActionBar" >
        <item name="navigationIcon">@drawable/abc_ic_ab_back_mtrl_am_alpha</item>
    </style>
    drawerToggle.setToolbarNavigationClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            onBackPressed();
        }
    });