我第一次使用android导航组件,并且对Android体系结构组件也很陌生。据我所知,android体系结构中的导航组件主要在同一活动中使用片段进行导航。我试图使用导航组件从一个活动导航到另一个活动:
activity.finish()
Navigation.findNavController(btnView).navigate(R.id.activity)
此处R.id.activity
是在导航图XML文件中定义的活动的ID。
当我按下“后退”按钮时,我仍然能够看到前一个屏幕。我的问题是后向堆栈在导航组件中的工作方式,为什么即使调用了该活动的destroy方法(由于activity.finish()
也使我的第一个活动出现了?
答案 0 :(得分:0)
我可以回答您的第二部分,而第一部分会更好地理解您的情况。
通过执行以下方法无法完成您的活动,因为如果完成该活动,则您不会在后堆栈上看到它。
activity.finish()
在导航方法之后完成当前活动。以下是完成当前活动的正确方法。
btn.setOnClickListener{
Navigation.findNavController(btnView).navigate(R.id.secondActivity)
(activity as currentActivity).finish()
}