问题
My current app has fragment and slidingUpCard navigation. Each one of them has a different set of active ActionBar elements and the buttons change with the screen. I was wondering if there was a way of animating the buttons coming and going similar to what android:animateLayoutChanges would do for a LinearLayout.
回答1:
On your question. I'm not sure if it is possible to add animateLayoutChanges to the ActionBarContainer that holds the ActionBar. But still you can access the ActionBarView in same manner as you will see a bit down in this answer.
Hierarchy: ActionBarContainer -> ActionBarView -> AbsActionBarView -> ViewGroup
Idea:
Take a look at this gist and see how menu items are accessed and referenced as View
Next:
Hide all menu item but get their icon resource or entire
Viewyou see in the gist.Use
ObjectAnimatororViewPropertyAnimatorto animate thexfor going in and out.- Once the animation has ended, change the visibilty of the menus
Note that this is dirty way. It can be slow due to the reflection.
来源:https://stackoverflow.com/questions/22043544/animating-action-bar-icons-appearing-on-fragment-changes