Ich benutze die android.support.v7.widget.Toolbar mit einem android.support.v4.widget.DrawerLayout. Es funktioniert gut, das Burger-Symbol wird angezeigt, wenn das Navigationsfach geschlossen ist, und das Pfeilsymbol wird angezeigt, wenn das Fach geöffnet ist. Ich möchte die Schublade deaktivieren und das Burger-Symbol in Pfeil bei einigen Ereignissen in der App animieren. Ich habe versucht, den Sperrmodus zu schließen, aber der v7.app.ActionBarDrawerToggle zeigt immer noch den Burger und es öffnet die Schublade.Wie animieren Burger zu Pfeil mit Appcompat v7 21, Toolbar und DrawerLayout
mDrawerLayout.setDrawerLockMode (DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
Irgendwelche Ideen? Danke!
Update:
Nein kann ich den Zustand des Symbols ändern, und ich kann aktivieren/deaktivieren Sie die Schublade, aber die Animationen funktionieren nicht mit diesem Ansatz:
@Override
protected void onCreate(Bundle savedInstanceState) {
...
Toolbar toolbar = (Toolbar) findViewById(R.id.application_toolbar);
setSupportActionBar(toolbar);
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawerLayout);
mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, R.string.string1, R.string.string2) {
public void onDrawerClosed(View view) {
super.onDrawerClosed(view);
}
public void onDrawerOpened(View drawerView) {
super.onDrawerOpened(drawerView);
}
};
//mDrawerLayout.setDrawerListener(mDrawerToggle); // not needed
...
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
if (mDrawerLayout.getDrawerLockMode(GravityCompat.START) == LOCK_MODE_UNLOCKED) {
showDrawer();
} else {
handleBackButtonPress(); // On this stage the home button is a <-
}
}
...
}
private void setDrawerState(boolean isEnabled) {
if (isEnabled) {
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);
mDrawerToggle.onDrawerStateChanged(DrawerLayout.LOCK_MODE_UNLOCKED);
mDrawerToggle.syncState();
} else {
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
mDrawerToggle.onDrawerStateChanged(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
mDrawerToggle.syncState();
}
}
Die Schublade kommt oben auf der Symbolleiste.
bitte eine Erklärung des Codes lassen .. – Haris
Dank aber ich denke du verstehst meine Frage falsch. Ich möchte die Navigationsleiste vollständig deaktivieren (zur Laufzeit) und das Pfeilsymbol anstelle des Burgers anzeigen. – user2298916
Ich habe das gleiche Problem keine Ahnung? –