1.前言

因为我近期在项目中使用了MVVM组件——Navigation,同时又因为项目需要使用BottomNavigationView+Fragment+Viewpager2的框架,所以我便早早把viewpager2的适配器写好,但又因为我近期在相关Fragment里添加了Navigation。在运行后便出现了爆红:Fragment already added。

2.错误原因

之所以会出现如上bug显示,是因为在Navigation的作为NavHost的控件里加入了 app:navGraph="@navigation/nav_note_toshow",**这一句的意思不只是起到导航的作用,还是起到将路线起始的Fragment和该Activity进行捆绑,当Activity创建的时候,起始Fragment也会随之创建。**故在之后的ViewPager2适配器里的创建就是重复添加了。。
即使不会报错,当你滑动UI后,你会发现底层还有一个相同UI。

3.最后

任何bug都是可以溯其根源,轻易解决的,缺少的只是一个思路。为了解决这个bug,我抓瞎了一天,虽然耗费的时间很长,但是能够顺利解决,那便是值得祝贺的事情。
做此篇,警示自己不再犯此错误。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐