android - 共享过渡动画故障

标签 android android-animation material-design shared-element-transition

我有什么

我已经正确设置了权限。

<item name="android:windowContentTransitions">true</item>        
<item name="android:windowAllowEnterTransitionOverlap">true</item>
<item name="android:windowAllowReturnTransitionOverlap">true</item>

<!-- specify shared element transitions -->
<item name="android:windowSharedElementEnterTransition">
    @transition/change_image_transform</item>
<item name="android:windowSharedElementExitTransition">
    @transition/change_image_transform</item>

这是我的转换文件,

<transitionSet xmlns:android="http://schemas.android.com/apk/res/android">
    <changeImageTransform/>
    <changeBounds/>
    <changeTransform/>
</transitionSet>

现在,在我的主 Activity 中,我提供了一个带有图像缩略图的 GridView。

View photo = (View) list.getChildAt(position).findViewById(R.id.fileThumb);
                    photo.setTransitionName("photo" + position);
                    ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(getActivity(), Pair.create(photo, photo.getTransitionName()));

                    Intent intent = new Intent(getActivity(), GalleryActivity.class);
                    intent.putExtra(Config.GALLERY_EXTRA, position);
                    getActivity().startActivity(intent, options.toBundle());

在我的详细 Activity 中,

我有一个带有 fragment 的 ViewPager。在 fragment 的 onCreate() 中,我这样做了。

final PhotoView photoView = new PhotoView(container.getContext());
                    relativeLayout.addView(photoView, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
photoView.setTransitionName("position"+pos);

动画似乎可以在正确的项目上运行,但并不顺利。动画里好像有问题。不过,退出过渡还是比较顺利的。但仍然不完美。

我在这里做错了什么?

最佳答案

您是否使用 Chris Banes 的 PhotoView 库?如果是这样,那不是你的错,而是库中的错误:https://github.com/chrisbanes/PhotoView/issues/243

关于android - 共享过渡动画故障,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30268048/

相关文章:

android - IMX6 板上使用 Android 的 Zigbee 控制应用程序

android - Cordova 无法构建 Android

Android 可缩放无尽环

reactjs - Materialise-CSS 和 Material UI 之间的区别

android - 扩展时更改 ModalDrawer 的大小,Jetpack Compose

Android NDK C++ 'wstring' 支持

java - 以编程方式设置 PercentageRelativeLayout 中的宽高比

android - 如何将 FAB(扩展)动画化为新的 Activity

Android 工具栏和用户图像动画,如 Twitter

android - 将 RecyclerView 中的 CardView 扩展为新 Activity ,例如 Google Android 的收件箱