Material Design 的基础之一是:让不同页面的切换具有意义,即让用户知道与界面发生交互后为何会从当前页面跳转到另一个页面。为此,Android Lolipop 为开发者提供了一个名为 Transition 的过渡动画框架,开发者能够通过这个框架为 Activity 和 Fragment 的跳转提供动画效果。我在了解 Transition 框架的过程中发现现在网上并没有太多将 Transition 应用到 Fragment 上的相关资料,所以我决定写一篇博客来分享一些我学到的知识~
我在开发的一个产品非常简单,用格子的形状来展示图片瀑布流,当用户点击图片时,就会显示该图片的详细信息。多亏了 Transition 框架,我们才能按照我们的想法完成整个图片的交互和显示,效果图如下:
如果你不想看下面的文字,而是想直接下载源码的话,戳我去 Github 下载吧~
在老版本的 Android 系统中会怎样呢?
事实上,这篇博文既为大家带来了好消息,也为大家带来了坏消息。坏消息是:Lolipop 之前的版本并没有可调用的 Transition API;但好消息是:Android support library 提供了可以在 API 21 以上的手机版本中使用 Transition API 的方法,而且不需要为代码添加 API 版本的判断。
Setup
不像为 Activity 添加 Transition,在为 Fragment 添加 Transition 的时候不需要用到 Window.FEATURE_ACTIVITY_TRANSITIONS,也不需要 Window.FE