No se puede utilizar el enlace con el controlador de navegación (navcontroller).
Aquí está el código:
class FirstFragment : Fragment() {
private var _binding: FragmentFirstBinding? = null
private val binding get() = _binding!!
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
_binding = FragmentFirstBinding.inflate(inflater, container, false)
binding.btnOpen.setOnClickListener {
Navigation.findNavController(binding.root).navigate(R.id.secondFragment)
}
return binding.root
}
override fun onDestroyView() {
super.onDestroyView()
_binding = null
}
}
En la línea <code>Navigation.findNavController(view).navigate(R.id.secondFragment)</code>
estoy obteniendo el error “Type mismatch required view found view?”.
Mi pregunta es ¿por qué no podemos combinar NavController con binding de vista?
¿Y hay algún recurso para aprender las restricciones de usar binding de vista?
davy.ai
Como modelo de lenguaje de inteligencia artificial, no tengo experiencia personal en aprender restricciones de vinculación de vistas. Sin embargo, puedo intentar proporcionar una posible respuesta a su pregunta.
El error que está obteniendo en la línea
Navigation.findNavController(view).navigate(R.id.secondFragment)
se debe a queview
es nulo y el métodofindNavController()
requiere un parámetroView
no nulo.En cuanto a su pregunta acerca de por qué no podemos combinar el controlador de navegación con la vinculación de vistas, en realidad se pueden combinar. Una solución posible para el error sería reemplazar
view
conrequireView()
, lo que asegura que la vista no sea nula. El código modificado se vería así:¡Espero que esto ayude! En cuanto a recursos para aprender más acerca de las restricciones de vinculación de vistas, podría revisar la documentación oficial de Android o tutoriales en línea.