public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
如果我们打电话
fragment.getContext()
和container.getContext
我们会得到相同的结果,即主机活动吗?
view.getContext()
总是会返回Activity
context
,还是可以返回其他类型的context
?
答案 0 :(得分:2)
android中的Activity类扩展了Context类。所以基本上一个活动就是一个背景。但是背景可能不是一种活动。
fragment.getContext()
将返回附加到的容器的上下文。所以是的container.getContext()
会得到与fragment.getContext()
相同的结果,即主持人活动。
当创建ViewGroup的实例时,inflater将该活动的上下文传递给它。方法
container.getContext()
将返回相同的上下文。
fragment.getActivity()
将返回附加的活动,该活动也是上下文。当片段与活动分离时,它返回null。当附加时,它也返回与getContext()
关于你的上一个问题,view.getContext()
返回它正在运行的上下文。 View不会扩展Context类,因为在创建它们时,它们需要上下文对象作为参数。因此,当您在Activty中创建View时,您需要传递Context。当你打电话给view.getContext()
时,你会得到你在创建时传递的相同背景。