我的应用程序中有一些CardView,我希望它们像Google Keep中的卡一样运行。例如,当我单击具有文本的卡片时,它会(使用动画)扩展到另一个视图中。
如果您不确定我的意思,请在Google Keep Android应用上创建一个便笺,点按创建便笺时显示的卡片。这正是我想在我的应用程序中发生的事情。
我该怎么做呢?
答案 0 :(得分:28)
棒棒糖的新功能!
Activity + Fragment Transitions
宣布共享元素"在两个屏幕上很常见,您可以在两个状态之间创建平滑过渡。
album_grid.xml:
<ImageView
…
android:transitionName="@string/transition_album_cover" />
album_details.xml:
<ImageView
…
android:transitionName="@string/transition_album_cover" />
爪哇:
AlbumActivity.java
Intent intent = new Intent();
String transitionName = getString(R.string.transition_album_cover);
…
ActivityOptionsCompat options =
ActivityOptionsCompat.makeSceneTransitionAnimation(activity,
albumCoverImageView, // The view which starts the transition
transitionName // The transitionName of the view we’re transitioning to
);
ActivityCompat.startActivity(activity, intent, options.toBundle());
这里我们在两个屏幕中定义相同的transitionName。启动新活动时,此转换会自动进行动画处理。除了共享元素,您现在还可以编排进入和退出元素。