点击其项目后,我有了recyclelerview,我打开了一个包含共享元素转换的活动:
Intent myIntent = new Intent(getActive, EnlargeActivity.class);
myIntent.putExtra("IMAGE_URL", imageArrayList.get(position).getUrl());
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
holder.iv.setTransitionName(String.valueOf(MainActivity.position + "ZoomImage"));
ActivityOptionsCompat options = ActivityOptionsCompat.
makeSceneTransitionAnimation(getActive,
holder.iv,
ViewCompat.getTransitionName(holder.iv));
context.startActivity(myIntent, options.toBundle());
在活动中它有viewpager:
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_enlarge);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
getWindow().setEnterTransition(null);
}
supportPostponeEnterTransition();
在viewpager适配器中,它扩展了FragmentStatePagerAdapter,返回一个片段ProductDetailViewPagerFragment,它有一个imageview,我正在加载如下图像:( MainActivity.position是recyclerview的位置)
Picasso.with(getActivity())
.load(url)
.into(imageView, new Callback() {
@Override
public void onSuccess() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
imageView.setTransitionName(MainActivity.position + "ImageZoom");
}
getActivity().supportStartPostponedEnterTransition();
}
@Override
public void onError() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
imageView.setTransitionName(MainActivity.position + "ImageZoom");
}
getActivity().supportStartPostponedEnterTransition();
}
});
答案 0 :(得分:0)
我认为你应该在第二个活动中为ViewPager设置transTransitionName。上一个视图将与viewPager连接。 如果你打电话
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
imageView.setTransitionName(MainActivity.position + "ImageZoom");
}
图像加载成功(或失败)后,转换结束,它将无法正常工作。