Ich habe eine grundlegende ActionBarDrawerToggle mit der neuen Symbolleiste in Android 5.0 implementiert.Wie ersetzt man das Hamburger-Symbol, das für ActionBarToggle verwendet wird, in der Android Toolbar mit einem benutzerdefinierten Zeichensatz?
Ich bin jedoch nicht in der Lage, herauszufinden, wie das Standard-Hamburger-Symbol, das geliefert wird, zu ändern. Aus der Android-Dokumentation heißt es, dass "die angegebene Aktivität mit dem angegebenen DrawerLayout verknüpft wird und das Navigationssymbol der Toolbar auf ein benutzerdefiniertes Zeichen gesetzt wird ... Dieses Zeichen zeigt ein Hamburger-Symbol beim Schließen der Schublade und einen Pfeil bei der Schublade offen. Es animiert zwischen diesen beiden Staaten, wenn sich die Schublade öffnet. "
Ich habe derzeit das alles richtig funktioniert mit dem folgenden Code, aber ich möchte den Standard gelieferten Hamburger mit meinem eigenen Zeichensatz ersetzen.
Hier ist meine aktuellen Code:
MainActivity.java
@InjectView(R.id.main_activity_toolbar)
Toolbar mToolbar;
@InjectView(R.id.main_activity_drawer_layout)
DrawerLayout mDrawerLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.main_activity);
super.onCreate(savedInstanceState);
setSupportActionBar(mToolbar);
mToolbar.setNavigationIcon(R.drawable.navigation);
mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, mToolbar, R.string.drawer_open, R.string.drawer_close) {
public void onDrawerClosed(View view) {
super.onDrawerClosed(view);
invalidateOptionsMenu();
}
public void onDrawerOpened(View drawerView) {
super.onDrawerOpened(drawerView);
invalidateOptionsMenu();
}
};
mDrawerLayout.setDrawerListener(mDrawerToggle);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
}
Diese Zeile:
mToolbar.setNavigationIcon(R.drawable.navigation);
scheint nicht zu funktionieren.
Ist das möglich? Vielen Dank!
ActionBarToggle Dokumentation - https://developer.android.com/reference/android/support/v7/app/ActionBarDrawerToggle.html
Danke für den Rat zu nennen! Das funktioniert, aber wie erhalten Sie das Symbol auf der linken Seite der Menüleiste? Auch müssen Sie verfolgen, ob die Schublade geöffnet ist, um zu wissen, ob Sie openDrawer oder closeDrawer aufrufen sollten, korrigieren? – jet
Wenn Sie die mToolbar.setNavigationIcon (resId) verwenden; es wird es für dich platzieren. Ja, Sie müssen den Schubladenstatus verfolgen (Öffnen, Schließen), aber ich habe diese Zeile aus Platzgründen weggelassen. Bitte markieren Sie die Antwort, wenn dies Ihnen geholfen hat. – Roisgoen
'if (mDrawerLayout.isDrawerOpen()) {mDrawerLayout.closeDrawer (mDrawer); } else {mDrawerLayout.openDrawer (mDrawer); } ' –