2017-10-06 91 views
0

我有两个活动(一个具有RecyclerView和一个将以startActvityForResult开始的DetailsActvity)。两个活动之间的Android材质动画

现在我想做一个这样的动画,当我点击一个列表项。

https://material.io/guidelines/motion/material-motion.html#material-motion-implications-of-motion

这将是巨大的,如果有人能告诉我一个简单的方法来实现这一点。

+1

http://guides.codepath.com/android/shared-element-activity-transition希望这个链接可以帮助你 –

+0

就像在预览中这不是一个共享元素动画。它只是从点击项目的位置开始的一个转换。 –

回答

1

你在找什么叫做makeSceneTransitionAnimation。使用起来相当简单,你需要在两个屏幕上都有一个共享的元素,它有一个共同的XML标签“transitionName”,例如,

"android:transitionName="clock" 

,然后开始与makeSceneTransitionAnimation活动:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
      Pair<View, String> p1 = Pair.create(clock, "clock"); 

      ActivityOptionsCompat options = ActivityOptionsCompat. 
        makeSceneTransitionAnimation((Activity) getContext(), p1); 

      mView.getContext().startActivity(intent, options.toBundle()); 

}

编辑:我写这个你评论说,这是你正在寻找没有什么,但我之前认为你可以通过makeSceneTransitionAnimation实现显示的转换。

+0

谢谢,这是工作:) 我做我的工作与'startActivityForResult'与下面的代码: 'ActivityCompat.startActivityForResult(活动,意图,CategoryDe​​tailsActivity.EDIT_CATEGORY,options.toBundle())' –

+0

现在,当我关闭这项活动。我想要相同的动画后退。你现在热了吗? –

+1

尝试使用[supportFinishAfterTransition()](https://developer.android.com/reference/android/support/v4/app/FragmentActivity.html#supportFinishAfterTransition())退出活动 – Ole