前言
关于Navigation中回退栈的管理相关
一、问题描述
之前学navigation的时候发现到获取Controller成功使用后,界面是可以跳转了,但是每一次跳转都会在栈中添加新的fragment,也就是说我两个界面来回跳转几十次,再来按返回键退出这些fragment我也需要按好几十次来全部退出。
二、解决方法
实际上navigation本身就有应对措施,主要是action中的两个属性popUpTo和popUpToInclusive
app:popUpTo="@id/loginFragment"
app:popUpToInclusive="true"
popUpTo后面跟的id就代表我进行此次action后会弹出栈中除了此fragment之外的全部fragment,但是有一个问题是,如果是重复的fragment它是不会弹出的(即我们重复跳转同一个界面几次,这样每次跳转时并不会弹出)这就需要后面这个popUpToInclusive来点作用了,参数为true即为弹出其余全部,为false则不弹出,也就是加了这个之后会弹出除了我们跳转目标之外的全部内容,再直白点就是这俩一起用就能在跳转的同时弹出别的fragment
PS
以上内容均为个人学习记录分享所用,如有错误还请不吝指正,以免本人犯错误导他人。