我一直在尝试Lollipop上的共享元素转换。我有一个Recyclerview加载一些卡片,然后在下一个活动中点击一下卡片就可以扩展到它的细节。
我在卡片上设置了涟漪效果和StateListAnimator。但是这些不可见,因为转变在这些效果完成之前开始。
有没有办法延迟转换,以便它可以等待状态列表动画师和涟漪完成?
这是我使用的代码
ActivityOptions options = null;
if (Utilities.isLollipop()) {
options = ActivityOptions.makeSceneTransitionAnimation(this, Pair.create(view, "hero_view"), Pair.create((View) fab, "fab"));
startActivity(detailIntent, options.toBundle());
}
提前致谢
答案 0 :(得分:0)
我最终使用了一种解决方法,但我仍然想知道这样做的正确方法是什么,因此将问题保持开放。
我做的工作是 1.删除状态列表动画,并将其添加为onclick方法中的动画制作者。 2.使用处理程序发布对活动的延迟调用
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Intent i=new Intent(SearxhJobs.this,JobsTypes.class);
startActivity(i);
}
}, 200);
P.S-我最终删除了效果,因为它不是很直观。
答案 1 :(得分:0)
可能有助于某些已经在第二个活动中设置过渡的方式:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
getWindow().getSharedElementEnterTransition().setDuration(500);
getWindow().getSharedElementReturnTransition().setDuration(500)
.setInterpolator(new DecelerateInterpolator());
}