Używam android.support.v7.widget.Toolbar z android.support.v4.widget.DrawerLayout. Działa dobrze, ikona Burger jest wyświetlana po zamknięciu szuflady nawigacji, a ikona strzałki jest wyświetlana po otwarciu szuflady. Chcę wyłączyć szufladę i animować ikonę Burger w Strzałkę w niektórych wydarzeniach w aplikacji. Próbowałem ustawić tryb blokady na zamknięty, ale v7.app.ActionBarDrawerToggle nadal pokazuje Burgera i otwiera szufladę.Jak animować Burger do Strzałka z Appcompat v7 21, Toolbar i DrawerLayout
mDrawerLayout.setDrawerLockMode (DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
Wszelkie pomysły? Dzięki!
Aktualizacja:
Nie mogę zmienić stan ikony i mogę włączyć/wyłączyć szufladę, ale animacje nie działają z takim podejściem:
@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();
}
}
Szuflada przychodzi na pasku narzędzi.
proszę zostawić wyjaśnienie kodu .. Dzięki – Haris
, ale myślę, że źle rozumiesz moje pytanie. Chcę całkowicie wyłączyć szufladę nawigacji (w czasie wykonywania) i pokazać ikonę strzałki zamiast burgera. – user2298916
Mam ten sam problem z jakimkolwiek pomysłem? –