Итак, я прочитал все статьи и примеры на 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)
}
Примечание: я пытался использовать пункт назначения Fragment
id вместо 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
Может кто-нибудь сказать мне, что я делаю неправильно или отсутствует?