2015-06-30 4 views
3

У меня есть деятельность, которая расширяет AppCompatActivityзначок Animate панели инструментов программно

я устанавливаю Toolbar так:

mToolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(mToolbar); 
    actionBar = getSupportActionBar(); 
    assert actionBar != null; 
    actionBar.setHomeAsUpIndicator(R.drawable.ic_menu); 
    actionBar.setDisplayHomeAsUpEnabled(true); 
    actionBar.setDisplayShowHomeEnabled(true); 

анимировать иконки Toolbar при открытии или закрытии NavigationView я делаю это:

actionBarDrawerToggle = 
      new ActionBarDrawerToggle(this, mNavigationDrawer, R.string.open_drawer, 
        R.string.close_drawer); 
    mNavigationDrawer.setDrawerListener(actionBarDrawerToggle); 

    actionBarDrawerToggle.syncState(); 

Я вижу, что когда ящик открывает значок, анимируется на задний план arr и когда он закрывается, он оживляется от стрелки до значка гамбургера.

Я хочу знать, не открывая и не закрывая NavigationView, как я могу программно анимировать значок со стрелкой и вернуться к значку гамбургера.

Что-то вроде приложения gmail. Если мы находимся в списке писем и нажимаем одно электронное письмо, оно оживляет стрелку и показывает содержимое письма, а если мы нажимаем стрелку, оно оживляет гамбургер и показывает список писем.

ответ

0

Только для людей спотыкаясь в этом вопросе, я сумел решить эту проблему, делая это:

ValueAnimator anim = ValueAnimator.ofFloat(start, end); 
anim.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { 
    @Override 
    public void onAnimationUpdate(ValueAnimator valueAnimator) { 
     float slideOffset = (Float) valueAnimator.getAnimatedValue(); 
     toolbarDrawerToggle.onDrawerSlide(drawerLayout, slideOffset); 
    } 
}); 
anim.setInterpolator(new DecelerateInterpolator()); 
// You can change this duration to more closely match that of the default animation. 
anim.setDuration(500); 
anim.start(); 

Получено решение от here

Смежные вопросы