NavController sharedTransition RecyclerПросмотреть элемент во фрагмент не работает - PullRequest
0 голосов
/ 08 апреля 2019

Итак, я прочитал все статьи и примеры на sharedTransitions Я смог найти, и это показалось достаточно простым, но по какой-то причине это не сработало для меня.

Это мое RecyclerView.Itemмакет:

<androidx.cardview.widget.CardView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            style="@style/LibraryItem">

        <ImageView
                android:id="@+id/library_note_image"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:transitionName="@string/library_item_transition"
                style="@style/LibraryImage"/>
    </androidx.cardview.widget.CardView>

Это действие onClickListener для RecyclerView элементов в моем первом Fragment:

private fun startEditNoteFragment(view: View) {
            val action = LibraryFragmentDirections.actionEditNote()
            val extras = FragmentNavigatorExtras(view to view.transitionName)

            findNavController().navigate(action, extras)
        }

Примечание: я пытался использовать пункт назначения Fragmentid вместо action, также попытался сделать анимацию перехода действия от none к чему-то другому.Ничего не помогло.

Это макет редактирования Fragment (к которому мы переходим):

<androidx.constraintlayout.widget.ConstraintLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent" 
        android:layout_height="match_parent">

    <com.ink.edit.drawing.view.PathRenderingView
            android:id="@+id/pathRenderingView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:transitionName="@string/library_item_transition"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>

А вот код перехода в Fragment:

override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        sharedElementEnterTransition = TransitionInflater.from(context).inflateTransition(android.R.transition.move)
    }

Примечание: я также пытался сделать postponeEnterTransition() в onCreate и startPostponedEnterTransition() в onCreateView и до сих пор ничего.

Я тестирую на Pixel 3 с Android 9, проектminSdkVersion - 21, buildToolsVersion - 28.0.3.Зависимости библиотеки навигации: navigation-fragment-ktx:2.0.0 и navigation-ui-ktx:2.0.0


Может кто-нибудь сказать мне, что я делаю неправильно или отсутствует?

1 Ответ

0 голосов
/ 09 апреля 2019

Имена переходов должны быть уникальными в иерархии представления, и похоже, что вы добавляете много элементов с одинаковым именем перехода (столько же, сколько элементов у вас в представлении переработчика)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...