How to add animation while actionbar are changing their content with Appcompat?

前端 未结 2 1834
栀梦
栀梦 2021-02-05 15:04

I\'m looking at Google\'s Material Design guidelines and I want add animated action bar. My goal is do something like this:

2条回答
  •  一整个雨季
    2021-02-05 15:46

    I think I finally found your answer. This was way harder to find than I thought. If you take a look at this link: http://suhan.in/material-design-toolbar-animation/

    The first one explains how this is done.

    Below you find my own code snippet of how it could be done with only the menu items:

    for(int i = 0; i < toolbarView.getChildCount(); i++) 
    {
        final View v = toolbarView.getChildAt(i);
    
        if(v instanceof ActionMenuView) 
        {
            for(int j = 0; j < ((ActionMenuView)v).getChildCount(); j++) 
            {
                final View innerView = ((ActionMenuView)v).getChildAt(j);
    
                if(innerView instanceof ActionMenuItemView) 
                {
                    innerView.setTranslationY(-30);
                    innerView.animate().setStartDelay(100 + (j * 10)).setDuration(200).translationY(0);
                }
            }
        }
    }
    

    This is the animation for the Y-axis. You can also add the animation for size, which I think they do in the design guidelines. Also if you don't want them to start simultaniously, you can set startDelay and add extra like this: setStartDelay(i * 10). This way each item starts the animation a little later. I already put this in the code snippet, but tweak it as how you would like it.

提交回复
热议问题