导航时,有popupto=“nav\u graph\u id”和popuptinclusive=“true”来清除后堆栈。还有enteranim和exitanim套装。当堆栈看起来像这样时:a->b(当前片段后面没有片段),两个动画都可以工作。当它是a->b->…->n(当前片段后面的一个或多个片段),exitanim不工作。
我已经隔离了这个问题,所以只有当存在除当前片段之外的其他片段时才会发生。
下面是我的导航图,带有注解的兴趣点。
有没有办法让exitanim在pin内工作?版本2.3.5。
<navigation
android:id="@+id/nav_main"
app:startDestination="@id/nav_main_auth"
>
<!-- auth -->
<fragment android:id="@+id/nav_main_auth">
<!-- to pin -->
<action
android:id="@+id/nav_main_auth_to_pin"
app:destination="@id/nav_main_pin"
app:enterAnim="@anim/slide_in_left"
app:exitAnim="@anim/slide_wait"
app:popExitAnim="@anim/slide_out_right"
/>
<!-- to home -->
<action
android:id="@+id/nav_main_auth_to_home"
app:destination="@+id/nav_main_home"
app:popUpTo="@id/nav_main"
app:popUpToInclusive="true"
app:enterAnim="@anim/slide_in_left"
app:exitAnim="@anim/slide_out_left" <!-- here it does work cause no fragments except this one -->
/>
</fragment>
<!-- pin -->
<fragment android:id="@+id/nav_main_pin">
<!-- to home -->
<action
android:id="@+id/nav_main_pin_to_home"
app:destination="@+id/nav_main_home"
app:popUpTo="@id/nav_main" <!-- if I remove popUps it works -->
app:popUpToInclusive="true"
app:enterAnim="@anim/slide_in_left"
app:exitAnim="@anim/slide_out_left" <!-- here it does not work cause there's auth fragment behind -->
/>
</fragment>
<!-- home -->
<fragment android:id="@+id/nav_main_home" />
</navigation>
暂无答案!
目前还没有任何答案,快来回答吧!