Fragment的getContext与传递给Fragment的onCreateView的容器的getContext有区别吗?

时间:2016-07-23 16:40:27

标签: android android-fragments android-activity android-view android-context

public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState)

如果我们打电话

fragment.getContext()container.getContext我们会得到相同的结果,即主机活动吗?

view.getContext()总是会返回Activity context,还是可以返回其他类型的context

1 个答案:

答案 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()时,你会得到你在创建时传递的相同背景。