android - 共享元素到 ImageView 的转换在退出时有效,但在进入时不平滑

标签 android android-layout material-design android-transitions

正如您从视频中看到的,当在我的 Recyclerview 中单击图像时,转换到新 Activity 时并不顺利。当我单击“返回”返回原始 Activity 时,过渡很顺利。如何在打开 Activity 时使过渡顺利?

Video of issue

这是启动 Activity 的代码

Intent myIntent = new Intent(getActivity(), WallpaperFullActivity.class);

View sharedView = v.findViewById(R.id.wall_image);
String transitionName = "wall_trans";
ActivityOptionsCompat transitionActivityOptions = 
  ActivityOptionsCompat.makeSceneTransitionAnimation(getActivity(), sharedView, transitionName);

myIntent.putExtra(WallpaperFullActivity.BUNDLE_TAG, mDataWalls.get(i));
ActivityCompat.startActivity(getActivity(), myIntent, transitionActivityOptions.toBundle());

最佳答案

看到变量的名称,我猜您正在转换到具有高分辨率图像的 ImageView。问题可能是,图像的加载需要一些时间,因此在转换时不知道 ImageView 的最终位置和大小,从而导致转换不稳定。考虑使用 Activity.postponeEnterTransition() 推迟转换,并在加载图像时使用 Activity.startPostponedEnterTransition() 启动转换。欲了解更多信息,请参阅this blog entry .

关于android - 共享元素到 ImageView 的转换在退出时有效,但在进入时不平滑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31486104/

相关文章:

java - 如何显示谷歌自定义搜索结果的下一页?

java - Android Studio,我的 Activity 转到错误的 Activity

java - 如何在 Android Studio 上以编程方式更改小部件 ID

android - 如何在android xml中绘制三角形

reactjs - 使用material-ui appbar 和material-ui-next 向右或向左浮动的正确方法是什么?

java - 调用 startActivity(new Intent(context, activityA.class) 创建另一个 activityA 实例?

Android:在不同的 fragment 中调用相同的方法

带有叠加层的 Android 可缩放/可滚动 ImageView

javascript - md-autocomplete 未显示

Android colorControlNormal xml 属性在 Lollipop 之前不起作用