记录思考

Fragment 的过场动画

在 Android 开发中,有些应用对页面的过场动画要求比较高,他们中期望给用户提供一个良好的用户体验。适当的过场动画可以减少用户在页面加载时期等待的焦虑,因为让他们看一个动画,总比让他们盯着一个菊花转圈,或者一个白屏,黑屏要强很多。

在 Android 开发中,有些应用对页面的过场动画要求比较高,他们中期望给用户提供一个良好的用户体验。适当的过场动画可以减少用户在页面加载时期等待的焦虑,因为让他们看一个动画,总比让他们盯着一个菊花转圈,或者一个白屏,黑屏要强很多。

Android 也为开发者提供了很多动画的 API 和适配。只是平时工作中并不是所有开发者都会去研究得很细致。我是这么认为的,如果你所开发的项目中,并没有那么高的需求的话,你确实不需要去了解那么多,因为动画的实现大部分还是靠 API 的,你只需要去好好了解了解 API 已经官方文档,那么你也可以在短时间内掌握好动画的制作和实现。当然,首先你还是需要有一些基础知识的储备。不然当产品经理拿着效果过来找你的时候,你直接说不知道,做不了,然后产品经理拿着别人的作品再次过来的时候,那就打脸了。

首先一个 Activity 里 Fragment 的切换的实现:

supportFragmentManager.beginTransaction()
    .replace(R.id.home_content, fragment)
    .addToBackStack(tag)
    .commit()

然后我们需要为两个 Fragment 定制共享的元素

supportFragmentManager.beginTransaction()
    .replace(R.id.home_content, fragment)
    .addToBackStack(tag)
    .apply {
        for (view in sharedElementViews) {
            addSharedElement(view)
        }
    }
.commit()

当从 A Fragment 跳转到 B Fragment 的时候,这些 View 的位置会变化,大小也会变化。

class GridFragment : Fragment() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        sharedElementEnterTransition = ChangeBounds()
    }
}

更加详细的介绍,https://medium.com/google-developers/fragment-transitions-ea2726c3f36f

- EOF -

本文链接 https://spacepage.top/articles/2018.08.03-10_08_22-fragment-transitions.html,欢迎转载,转载请注明出处。