2

То, что яShared Transition Анимация Glitch

Я установил разрешение правильно.

<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> 

Теперь в моей основной деятельности я дал 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()); 

В моей Detail деятельности,

У меня есть ViewPager с фрагментами. В onCreate() фрагмента я сделал это.

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

Анимация, похоже, работает с правильными элементами, но не гладко. Кажется, есть сбой в анимации. Однако переход на выходе несколько плавный. Но все еще не идеально.

Что я здесь делаю неправильно?

ответ

2

Вы используете библиотеку PhotoView Крисом Банесом? Если это так, это не ваша ошибка, но ошибка в библиотеке: https://github.com/chrisbanes/PhotoView/issues/243

+0

Плохо. Любое рабочее исправление? –

+3

Есть два возможных обходных решения, которые я нашел, но ни один из них не работал для меня:/ 1. Используйте обычный ImageView вместо Photoview, а затем установите PhotoViewAttacher на ImageView после завершения перехода. Однако я не мог понять, как правильно настроить слушателя. 2. Отобразите второй ImageView за PhotoView и сделайте его невидимым впоследствии. Не работает, потому что некоторая setVisibility (View.GONE) не будет работать. Не стесняйтесь попробовать эти обходные пути самостоятельно, возможно, вы получите его на работу. –

+0

Спасибо, я посмотрю, смогу ли найти какое-либо другое решение. –

 Смежные вопросы

  • Нет связанных вопросов^_^