gpt4 book ai didi

android - Fragment 的 getContext 和传递给 Fragment 的 onCreateView 的容器的 getContext 有区别吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:01:37 25 4
gpt4 key购买 nike

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

说如果我们打电话

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

view.getContext() 也总是返回 Activity context 或者它可以返回一些其他类型的 context?

最佳答案

Activity class in android extends Context class. So basically an activity is a context. But a context may not be an activity.

fragment.getContext() 将返回它附加到的容器的上下文。所以是的,container.getContext() 将具有与 fragment.getContext() 相同的结果,即主机 Activity 。

When instance of the ViewGroup is created, the inflater pass context of that activity to it. Means container.getContext() will return that same context.

fragment.getActivity() 将返回它附加的 Activity ,该 Activity 又是一个上下文。当 fragment 与 Activity 分离时,它返回 null。附加时它也返回与 getContext()

相同的结果

关于您的最后一个问题,view.getContext() 返回它运行的上下文。 View 不扩展 Context 类,事实上,当它们被创建时,它们需要 context 对象作为参数。因此,当您在 Activty 中创建 View 时,您需要传递 Context。当您调用 view.getContext() 时,您将获得与创建它时传递的上下文相同的上下文。

关于android - Fragment 的 getContext 和传递给 Fragment 的 onCreateView 的容器的 getContext 有区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38544095/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com