因此,我已经阅读了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
,但仍然没有任何反应。
我正在使用Android 9在Pixel 3上进行测试,该项目的minSdkVersion
是21,buildToolsVersion
是28.0.3。导航库依赖项为navigation-fragment-ktx:2.0.0
和navigation-ui-ktx:2.0.0
谁能告诉我我做错了什么或想念什么?
答案 0 :(得分:0)
过渡名称在视图层次结构上必须唯一,并且看起来您要添加许多具有相同过渡名称的元素(与“回收者”视图中的项目一样多)