NavigationGraph动画无法正常工作的问题

时间:2018-12-28 06:23:28

标签: android navigation android-jetpack

我将此代码与NavigationGraph Fragment

一起使用
 <fragment
        android:id="@+id/editProfileFragment"
        android:name="com.uvm.ui.editprofile.EditProfileFragment"
        android:label="FragmentFour"
        tools:layout="@layout/edit_fragment_profile" >
        <action
            app:popExitAnim="@anim/nav_default_pop_exit_anim"
            app:exitAnim="@anim/nav_default_exit_anim"
            app:enterAnim="@anim/nav_default_enter_anim"
            app:popEnterAnim="@anim/nav_default_pop_enter_anim"
            android:id="@+id/action_editProfileFragment_to_profileFragment"
            app:destination="@id/profileFragment"  />
    </fragment>

然后

navController.navigate(R.id.editProfileFragment);

用于片段导航。其正常工作和片段替换也可以,但是enterAnim, exitAnim等属性不起作用。没有动画的片段替换。我该如何解决?  还有一个查询是NavigationGraph是替换片段还是添加片段?以及如何获取堆栈总数?

1 个答案:

答案 0 :(得分:1)

正如我所看到的,您正在使用Fragment的RID进行导航,而应用事务动画时,您将在动作中提供所有动画。

<action
            app:popExitAnim="@anim/nav_default_pop_exit_anim"
            app:exitAnim="@anim/nav_default_exit_anim"
            app:enterAnim="@anim/nav_default_enter_anim"
            app:popEnterAnim="@anim/nav_default_pop_enter_anim"
            android:id="@+id/action_editProfileFragment_to_profileFragment"
            app:destination="@id/profileFragment"  />

因此,要应用动画的动作RID进行导航。

navController.navigate(R.id.action_editProfileFragment_to_profileFragment);

默认情况下,导航组件使用“替换片段事务”。

还有how could i get total count of stack?

目前我还没有找到一种方法来计算这种情况,她可以解释什么用例?

这应该有效。