In my code I was inconveniently loading pictures after onCreateView()
because I was not sure if the activity was available yet. Because Glide required an activity context I placed the section of code into onActivityCreated()
:
override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState)
//Crash unexpected since onActivityCreated should always have activity available
Glide.with(activity!!)
.load(viewModel.moment!!.mediaPath)
.into(binding.momentPhoto);
}
However, after looking through some best practices on Github many examples load the photos in onCreateView()
. They do this by using the requireActivity()
method:
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
binding = DataBindingUtil.inflate(layoutInflater, R.layout.fragment_photo_editor, container, false)
Glide.with(requireActivity())
.load(viewModel.moment!!.mediaPath)
.into(binding.momentPhoto);
return binding.root
}
Does anyone know what the difference between using an activity reference after onActivityCreated()
and getting the activity reference from requireActivity()
?