3

Я пишу пользовательский переход возврата, когда действие возвращается к вызывающей активности. Переход приводит к исчезновению содержимого финишной деятельности в конечную позицию вызывающей деятельности. Однако, когда эта анимация завершается, общий элемент вызывающей активности просто мигает в конечную позицию.Перемещаемый элемент return return blinks

Вот отрывок из моего перехода createAnimator-х:

@Override 
public Animator createAnimator(ViewGroup sceneRoot, TransitionValues startValues, 
     TransitionValues endValues) { 
    if (startValues == null || endValues == null) { 
     return null; 
    } 

    final ViewGroup startView = (ViewGroup) startValues.view; 
    final int startHeight = (int) startValues.values.get(PROPERTY_HEIGHT); 
    final int startWidth = (int) startValues.values.get(PROPERTY_WIDTH); 

    // Position at the original location 
    final int widthSpec = View.MeasureSpec.makeMeasureSpec(startWidth, 
      View.MeasureSpec.EXACTLY); 
    final int heightSpec = View.MeasureSpec.makeMeasureSpec(startHeight, 
      View.MeasureSpec.EXACTLY); 
    startView.measure(widthSpec, heightSpec); 
    startView.layout(0, 0, startWidth, startHeight); 

    final ObjectAnimator animator = ObjectAnimator.ofFloat(startView, "dummyValue", 0f, 1f); 
    animator.addUpdateListener(animation -> { 
     // Shift start view into end view's frame and fade out at the same time 
    }); 
    return animator; 
} 

Я не могу найти способ сказать мнение в повторно ввести перехода исчезать в то же время. В приведенном выше аниматоре startValues.view и endValues.view, похоже, соответствуют одному и тому же объекту (поэтому мне пришлось переместить начальный вид в его исходное местоположение).

ответ

0

Почему вы не используете обратные вызовы? setExitSharedElementCallback и setEnterSharedElementCallback сделать ваш просмотр анимация внутри setEnterShare ... callback второй активности ... надеюсь, это вам поможет.

setExitSharedElementCallback(new SharedElementCallback() { 
       @Override 
       public void onSharedElementEnd(List<String> sharedElementNames, List<View> sharedElements, List<View> sharedElementSnapshots) {       
        super.onSharedElementEnd(sharedElementNames, sharedElements, sharedElementSnapshots); 
       } 
      }); 

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

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