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

aj0*_*shi 3 navigation android 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>
Run Code Online (Sandbox Code Playgroud)

然后

navController.navigate(R.id.editProfileFragment);
Run Code Online (Sandbox Code Playgroud)

用于片段导航。它的工作良好,碎片也可以替换,但其他enterAnim, exitAnim属性不起作用。没有动画的片段替换。我该如何解决?还有一个查询是NavigationGraph替换片段还是添加片段?而我怎么能得到堆栈的总数呢?

Anm*_*mol 5

如我所见,您正在使用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"  />
Run Code Online (Sandbox Code Playgroud)

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

navController.navigate(R.id.action_editProfileFragment_to_profileFragment);
Run Code Online (Sandbox Code Playgroud)

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

how could i get total count of stack?

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

这应该工作。