Android activity页面跳转-共享元素

Android5.0之后支持Activity页面跳转使用共享元素,所谓共享元素即是在两个Activity(A,B)中设置两个控件(a,b),从A跳转到B时让两个Activity平滑的从a过度到b。效果图如下


下面就来记录一下实现的过程

1.首先在需要跳转的两个Activity的布局中找到你需要共享的控件

<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/cl_root"
    android:layout_width="280dp"
    android:layout_height="match_parent"
    android:layout_gravity="center_vertical"
    android:layout_marginRight="20dp"
    android:layout_marginBottom="20dp"
    android:transitionName="partOrderOpen"
    android:background="@color/color_00A0E9">

上面加红字体就是标记共享元素,里面的值是我们自己定义的(即要保证两个控件的这个属性值相等)。因为我这两个Activity使用的是一个相同的RecyclerView适配器,且共享元素在子布局中,所以这里只写了一个

2.布局中的标记写好后再看代码里面的

val intent = Intent()
intent.setClass(this@PartOrderActivity,PartOrderOpenActivity::class.java)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
     startActivity(intent, ActivityOptions.makeSceneTransitionAnimation(this@PartOrderActivity,view,"partOrderOpen").toBundle())
}else{
     startActivity(intent)
}

这里主要用到makeSceneTransitionAnimation方法,在这里设置共享的控件view,和共享元素的标记partOrderOpen

以上就是设置共享元素的主要过程,如有不对,希望不吝指正

猜你喜欢

转载自blog.csdn.net/android_hdh/article/details/80769945