【发布时间】:2020-04-05 16:13:38
【问题描述】:
在我的代码中,我在 onCreateView() 之后加载图片很不方便,因为我不确定活动是否可用。因为 Glide 需要一个活动上下文,所以我将这段代码放入 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);
}
但是,在查看了 Github 上的一些最佳实践之后,许多示例在 onCreateView() 中加载照片。他们通过使用 requireActivity() 方法来做到这一点
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
}
有人知道在 onActivityCreated() 之后使用活动引用和从 requireActivity() 获取活动引用有什么区别吗?
【问题讨论】: