J'ai fait un NavigationView
et inclus getSupportActionBar().setDisplayHomeAsUpEnabled(true);
dans mon code pour montrer le bouton hamburger, et cela a fonctionné. mais ensuite j'ai enlevé la barre d'outils par défaut (en réglant AppTheme
en styles
valeurs à parent="Theme.AppCompat.Light.NoActionBar"
), et mis en œuvre ma propre barre d'outils dans la mise en page. Et maintenant, au lieu du bouton Hamburger, il affiche le bouton de retour, bien que le fait de cliquer dessus dessine le NavigationView
. Que devrais-je faire?Affichage d'une icône de hamburger dans une barre d'outils personnalisée?
code Java My:
private DrawerLayout sideBar;
private ActionBarDrawerToggle sideBarToggle;
private Toolbar actionToolbar;
@Override
public void onCreate(...) {
sideBar = (DrawerLayout) findViewById(R.id.sqliteLayout);
sideBarToggle = new ActionBarDrawerToggle(this, sideBar, actionToolbar, R.string.sideBarOpen, R.string.sideBarClose);
actionToolbar = (Toolbar) findViewById(R.id.navAction);
sideBar.addDrawerListener(sideBarToggle);
sideBarToggle.syncState();
setSupportActionBar(actionToolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if(sideBarToggle.onOptionsItemSelected(item)){
return true;}
return super.onOptionsItemSelected(item);
}
Mon code barre d'outils:
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/navAction"
android:background="@color/colorPrimary"
app:theme="@style/Base.Theme.AppCompat.Light.DarkActionBar">
</android.support.v7.widget.Toolbar>
SOLUTION:
je réorganisés le code java à cela, et enlevé le 3ème argument new ActionBarDrawerToggle(...)
et ça a marché!
actionToolbar = (Toolbar) findViewById(R.id.navAction);
setSupportActionBar(actionToolbar);
sideBar = (DrawerLayout) findViewById(R.id.sqliteLayout);
sideBarToggle = new ActionBarDrawerToggle(this, sideBar, R.string.sideBarOpen, R.string.sideBarClose);
sideBar.addDrawerListener(sideBarToggle);
sideBarToggle.syncState();
getSupportActionBar().setDisplayHomeAsUpEnabled(true);