Почему не работает навигация из Fragment в Fragment?

Пишу мобильное приложение на Котлин и столкнулся с такой ошибкой

java.lang.IllegalStateException: View android.widget.FrameLayout{ff4c68f V.E...... ......I. 0,0-0,0} does not have a NavController set
at androidx.navigation.Navigation.findNavController(Navigation.kt:71)
at com.example.historicalsaratov.fragment.ListFragment.init(ListFragment.kt:79)
at com.example.historicalsaratov.fragment.ListFragment.onViewCreated(ListFragment.kt:68)

Не понимаю как её исправить, но она кроется в нажатии на FloatingBtn, так как при удалении части кода с регистрацией собыйти страница отображается корректно

Вот код регистрации события

   override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    super.onViewCreated(view, savedInstanceState)

    init(view)
    registerEvents()
}

private fun registerEvents() {
    binding.newFloatingActionButton.setOnClickListener{
        navController.navigate(R.id.action_listFragment_to_addFragment3)
    }
}

private fun init(view: View) {
    navController = Navigation.findNavController(view)
    auth = FirebaseAuth.getInstance()
}

Так же прикреплю полный код данной страницы

 private lateinit var auth: FirebaseAuth
private lateinit var navController: NavController
private lateinit var binding: FragmentListBinding
private lateinit var databaseRef: DatabaseReference
private lateinit var buildRecyclerView : RecyclerView
private lateinit var buildArrayList : ArrayList<Buildss>
override fun onCreateView(
    inflater: LayoutInflater, container: ViewGroup?,
    savedInstanceState: Bundle?
): View? {
    binding = FragmentListBinding.inflate(inflater, container, false)
    buildRecyclerView = binding.root.findViewById(R.id.buildList)
    buildRecyclerView.layoutManager = LinearLayoutManager(context)
    buildRecyclerView.setHasFixedSize(true)
    buildArrayList = arrayListOf<Buildss>()
    getBuildData()
    return binding.root
}

private fun getBuildData() {
    databaseRef = FirebaseDatabase.getInstance().getReference("Builds")
    databaseRef.addValueEventListener(object : ValueEventListener {
        override fun onDataChange(snapshot: DataSnapshot) {
            if(snapshot.exists()){
                for (buildSnapshot in snapshot.children){
                    val buil = buildSnapshot.getValue(Buildss::class.java)
                    buildArrayList.add(buil!!)
                }

                buildRecyclerView.adapter = MyAdapter(buildArrayList)
            }
        }

        override fun onCancelled(error: DatabaseError) {
            TODO("Not yet implemented")
        }

    })
}

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    super.onViewCreated(view, savedInstanceState)

    init(view)
    registerEvents()
}

private fun registerEvents() {
    binding.newFloatingActionButton.setOnClickListener{
        navController.navigate(R.id.action_listFragment_to_addFragment3)
    }
}

private fun init(view: View) {
    navController = Navigation.findNavController(view)
    auth = FirebaseAuth.getInstance()
}

Такой проблемы не было пока я использовал навигацию чисто через фрагменты, но когда начал пользоваться заменой данных в Активити вылезла такая ерунда


Ответы (0 шт):