Android过渡框架之共享元素过渡

本文介绍Android过渡框架中的共享元素过渡,通过设置过渡名称、使用FragmentTransaction和Navigation实现平滑的界面切换效果。详细讲解了如何在两个fragment之间实现共享元素的动画过渡,并提供了XML动画定义示例。
摘要由CSDN通过智能技术生成

上篇文章介绍了MVVM架构的搭建,这次继续完善Android All Star项目,实现Android All Star的搜索功能。使用Android的过渡框架模仿微信的搜索框,实现两个界面之间搜索框平滑切换的效果

先上最终实现效果图:

效果展示

过渡框架简介

Android 4.4.2 中引入了 Transition 过渡动画,借助 Android 的过渡框架,只需提供起始布局和结束布局,即可为界面中的各种view切换添加动画效果,从开发的角度来讲,过渡框架就是实现了View树View Hierarchy)之间的动画切换 。

过渡框架包含以下功能:

  • 群组级动画:将一个或多个动画效果应用于视图层次结构中的所有视图。
  • 内置动画:对淡出或移动等常见效果使用预定义动画。
  • 资源文件支持:从布局资源文件加载视图层次结构和内置动画。
  • 生命周期回调:接收可控制动画和层次结构更改流程的回调。

作共享元素过渡为过渡框架中的一部分,可以配置fragment过渡期间相应视图如何在两个fragment之间移动。 例如,您可能希望显示在fragmenA上ImageView中的图像在fragmentB变得可见后过渡到fragmentB,效果见下图:

shared-element-transition

共享元素过渡的实现

普通方式实现共享元素过渡需要三步:

  1. 为每个共享元素视图分配一个唯一的过渡名称。
  2. FragmentTransaction添加共享元素视图和切换后对应共享元素视图的过渡名称。
  3. 设置共享元素过渡动画。

首先,为了将视图从一个fragment映射到下一个fragment,必须为每个共享元素视图分配唯一的过渡名称。 使用ViewCompat.setTransitionName()为每个fragment布局中的共享元素上设置过渡名称,该方式与API级别14及更高版本兼容。 例如,fragmentA和fragmentB中的ImageView的过渡名称可以如下分配:

class FragmentA : Fragment() {
   
    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
   
        ...
        val itemImageView = view.findViewById<ImageView>(R.id.item_image)
        ViewCompat.setTransitionName(itemImageView, “item_image”)
    }
}

class FragmentB : Fragment() {
   
    override fun onViewCreated(view: View, savedInstanceState: Bundle
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CheatGZ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值