我正在尝试将共享元素过渡动画与导航组件一起使用,但是它不起作用,可能是我使用不正确。
从片段A导航到片段B时,我确实是这样的: 片段A:
val extras = FragmentNavigatorExtras(v to file.nameInStorage)
val action = FilesFragmentDirections.actionFilesFragmentToImageViewerFragment()
findNavController().navigate(action, extras)
片段B:
viewPagerImage.transitionName = filesListViewModel.selectedImage.nameInStorage
但是不幸的是,它不起作用!!!你能帮我吗?
答案 0 :(得分:1)
在导航包内的nav_graph.xml操作中添加这些过渡线
<action
app:popEnterAnim="@anim/anim1_enter"
app:popExitAnim="@anim/anim1_exit"
app:enterAnim="@anim/anim2_enter"
app:exitAnim="@anim/anim2_exit"
android:id="@+id/action_homeFragment_to_newsFragment"
app:destination="@id/newsFragment" />
代码看起来像
<fragment
android:id="@+id/homeFragment"
android:name="com.morchhattisgarh.india.fragments.HomeFragment"
android:label="fragment_home"
tools:layout="@layout/fragment_home" >
<action
app:popEnterAnim="@anim/anim1_enter"
app:popExitAnim="@anim/anim1_exit"
app:enterAnim="@anim/anim2_enter"
app:exitAnim="@anim/anim2_exit"
android:id="@+id/action_homeFragment_to_newsFragment"
app:destination="@id/newsFragment" />
</fragment>
注意-您需要在动画包中定义动画文件