使用导航组件重新创建片段

时间:2019-09-19 10:14:05

标签: android android-livedata android-jetpack android-architecture-navigation

在包含列表的片段的onViewCreated()中,我观察到如下实时数据:

     searchViewModel.allVideos.observe(viewLifecycleOwner, Observer {
        searchAdapter.updateList(it)
    })

每当单击列表项之一时,它将使用导航组件转到详细信息页面。

      ...
       val bundle = bundleOf("postId" to post!!.id)
        v?.findNavController()?.navigate(R.id.action_to_detailsFragment, bundle, null, extras)

,但是当用户返回列表时,他/她在列表中看到重复的项目。再次调用onViewCreated,并将新项目添加到列表中。导航组件替换片段:(((

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

请参阅@JoseAlcerreca的EventObserver,这使您只能观察一次事件。参考文章LiveData By JoseAlcerreca

您应该替换适配器的整个列表,而不是在观察者回调中更新列表。