在使用最新的Jetpack时,用Navigation来导航到不同的fragment时出现了这个问题,百度了一下,发现jetpack实在是太新了,很多问题都还没有解决方式,毕竟2019年才逐步完善的东西,现在年初遇到问题至少在国内很难在网上有解答,o(╥﹏╥)o也许这就是一直用最新的东西的难处吧。算了,还是自己研究…
先还原一下问题:
我要实现图中蓝色线的跳转:
下面是跳转代码:
结果报错:
从错误可以看出要我们实现OnFragmentInteractionListener这个东西,不过很明显我们使用jetpack的navigation不会low到这种地步让我们手动完成这些操作的,弄了一晚上终于发现问题所在:
出现这个错误的原因应该是Android studio创建fragment时自动生成关于fragment中的方法,其中onAttach()这个方法和navigation冲突了。所以我们只要在创建fragment禁止它自动生成这些方法即可
解决:
创建fragment时,取消这个两个勾选即可:
如果你已经创建过fragment,可以把fragment先删了,再次创建一个同名的,同时将Create layout XML也取消勾选即可。