导航组件中的过渡动画

时间:2020-07-30 11:06:42

标签: android android-fragments animation

我正在尝试将共享元素过渡动画与导航组件一起使用,但是它不起作用,可能是我使用不正确。

从片段A导航到片段B时,我确实是这样的: 片段A:

val extras = FragmentNavigatorExtras(v to file.nameInStorage)
val action = FilesFragmentDirections.actionFilesFragmentToImageViewerFragment()
findNavController().navigate(action, extras)

片段B:

viewPagerImage.transitionName = filesListViewModel.selectedImage.nameInStorage

但是不幸的是,它不起作用!!!你能帮我吗?

1 个答案:

答案 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>

注意-您需要在动画包中定义动画文件