问题描述
重新启动应用程序时,我想导航到最后一页的片段。
例如)MainFragment> UserListFragment> UserDetailFragment
使用NavDeepLinkBuilder创建了深层链接,因为我需要动态创建深层链接。
final PendingIntent pendingIntent = new NavDeepLinkBuilder(requireContext())
.setGraph(R.navigation.nav_graph)
.setDestination(R.id.userDetailFragment)
.createPendingIntent();
pendingIntent.send();
可以正常使用,但是没有动画。
如果我使用Uri的Deeplink,则可以使用NavController#navigate(Uri,NavOptions)。
是否可以在NavDeepLinkBuilder中使用动画?
对不起,我的英语不好。
谢谢。
解决方法
如果您使用的是navigate
,则可以将另一个参数添加为NavOptions
public void navigate(@NonNull Uri deepLink,@Nullable NavOptions navOptions) {
navigate(deepLink,navOptions,null);
}
然后以编程方式创建NavOptions
val navOptions =
NavOptions.Builder()
.setPopUpTo(
R.id.nav_graph_main,false
)
.setEnterAnim(R.anim.slide_in_right)
.setExitAnim(R.anim.slide_out_left)
.setPopEnterAnim(R.anim.slide_in_left)
.setPopExitAnim(R.anim.slide_out_right)
.build()
或者您也可以在xml
中创建操作,如下所示
<action
android:id="@+id/action_notes_to_noteDetail"
app:destination="@id/noteDetailFragment"
app:enterAnim="@anim/enter_slide_down"
app:exitAnim="@anim/exit_slide_down"
app:popEnterAnim="@anim/pop_enter_slide_up"
app:popExitAnim="@anim/pop_exit_slide_up" />
有关更多信息,您可以检查此navigation-architecture-component