2015-01-11 3 views
4

В моем приложении у меня есть общий элемент, который выглядит примерно такуправления конкретные элементы в общем элементе анимации

<FrameLayout 
    android:id="@+id/container" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"> 
    <TextView 
     android:id="@+id/title" 
     android:layout_margin="16dp" 
     android:text="Title" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"/> 
    <ImageView 
     android:id="@+id/image" 
     android:src="@drawable/hero_image" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"/> 
</FrameLayout> 

В моей деятельности я отмечаю image в качестве общего элемента и, таким образом, переходы к следующему изображению Мероприятия. Тем не менее, я хочу погасить title перед тем, как изображение переходит. Похоже, что я смогу получить эту работу, используя setSharedElementExitTransition() и установив title в качестве цели, но независимо от того, что я пытаюсь сделать, эта анимация не работает, и переходное изображение нарисовано поверх снимка title.

Я прочитал https://halfthought.wordpress.com/2014/12/08/what-are-all-these-dang-transitions/ Джорджа горы и просмотрел его отличные ответы здесь на SO, но мне просто нужно немного больше помощи :)

+0

Несколько вопросов: (1) Какой тип общего перехода элемента вы используете? Вы отмечаете, что используете переход с общим доступом, но какой тип перехода вы устанавливаете? Какой тип входящего перехода на общий элемент вы также используете? (2) Какие представления являются общими элементами, которые вы пытаетесь переходить между действиями? Есть ли только один общий элемент (изображение) или же заголовок является общим элементом? –

+0

(1) Я использую переходы активности с «ChangeBounds», когда общий элемент переходит в переход. Я установил «Fade» на выходе с названием в качестве цели. Я также попытался выцветать в общем элементе при вводе перехода безрезультатно. (2) Мне нужно только преобразовать изображение в этом примере. – botteaap

+0

Какой эффект вы видите? Переход на выход должен поднять ваш заголовок. Вы устанавливаете видимость НЕВИДИМЫ после startActivity? –

ответ

3

Это, как получить основы работает, предполагая, что setTransitionName("text") является называется на представлении заголовка

  1. Установите правильный общий элемент выхода анимации в активность A:

    getWindow().setSharedElementExitTransition(new TransitionSet(). 
          addTransition(new Fade().addTarget("text")); 
    
  2. После того, как вызывается startActivity(), измените видимость текстового вида заголовка, используя setVisibility(View.INVISIBLE). Это необходимо для работы затухания.

Установка вид на INVISIBLE был важным шагом, который мне не хватало, и я также имел анимации набор окно выход. Тем не менее, я должен был установить окно return с использованием Window.setReturnTransition().

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