Переходы общего вида с не работающим компонентом навигации - PullRequest
0 голосов
/ 04 марта 2019

Я следовал за документами для реализации общих переходов между представлениями с новым компонентом навигации, и он не работает.Вот что у меня есть:

Фрагмент A имеет этот код для вызова фрагмента B

val extras = FragmentNavigatorExtras(
                taskNameInput to "taskName")

findNavController().navigate(R.id.action_aFragment_to_BFragment,
            null), // Bundle of args
            null, // NavOptions
            extras)

Посмотрев на макет, идентификатор имеет имя перехода, установленное следующим образом:

<com.google.android.material.textfield.TextInputLayout
        android:id="@+id/taskNameInput"
        android:transitionName="taskName"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        ...

Тогда FragmentB имеет следующий вид в макете:

<com.google.android.material.textfield.TextInputLayout
        android:id="@+id/taskNameInput"
        android:transitionName="taskName"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        ...>

При переходе от фрагмента A к фрагменту B воспроизводится анимация ввода, но не переход sharedView.Любая подсказка?Спасибо

1 Ответ

0 голосов
/ 04 марта 2019

Отсутствует настройка sharedTransition для FragmentB, что можно сделать в onCrateView () следующим образом:

override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
                              savedInstanceState: Bundle?): View? {
    sharedElementEnterTransition = TransitionInflater.from(context).inflateTransition(R.transition.move)

    return inflater.inflate(com.meanwhile.flatmates.R.layout.fragment_b, container, false)
}

Также необходимо создать файл транзакции move.xml:

<transitionSet>
    <changeBounds/>
    <changeTransform/>
    <changeClipBounds/>
    <changeImageTransform/>
</transitionSet>

На момент написания этого поста в документации не было написано о новом компоненте навигации, но это всего лишь старый способ.Так как компонент навигации совершает магию для перехода на вход / выход, я ожидал сделать еще кое-что для общих видов.В любом случае, нет ничего сложного в том, чтобы добавить эти строки.

...