美文网首页Android开发
Navigation 踩坑记录

Navigation 踩坑记录

作者: 案玉璃青 | 来源:发表于2021-08-02 18:23 被阅读0次

1. 解决 navigate 重建 fragment 的一个可行办法

1). 在 navigate 时传入 NavOptions,设置 singleTop 。

navController.navigate(id, null, NavOptions.Builder().apply {

    setLaunchSingleTop(true)

}.build())

2). 在 xml 中 action 节点下设置 singleTop 属性。

<action   

    android:id="@+id/action_a"    

    app:destination="@id/a"    

    app:singleTop="true" />

2. popUpTo 和 popUpToInclusive 属性

<action

    android:id="@+id/action_a"

    app:destination="@id/a"

    app:popUpTo="@id/b"

    app:popUpToInclusive="true" />

popUpTo 表示该 action 在导航到 destination 所指定的 fragment 时,先将在栈中该属性对应的 fragment 之上的 fragment 弹出,再实例化 destination fragment 并压入栈中,popUpToInclusive 为 true 则表示 popUpTo 对应的 fragment 也一并弹出。

如:栈中存在 A、B、C 三个 fragment,入栈顺序为 :A -> B -> C

此时 navigate(R.id.action_a) 后栈顺序为:A1 -> A2

若同时设置 singleTop 为 true,则栈顺序为:A2

使用 Compose 进行导航

相关文章

网友评论

    本文标题:Navigation 踩坑记录

    本文链接:https://www.haomeiwen.com/subject/clejvltx.html