Android getActivity()和片段中的视图之间的差异

Android getActivity()和片段中的视图之间的差异,android,android-fragments,android-activity,Android,Android Fragments,Android Activity,两者的区别是什么 getActivity().findViewById(...) 及 在Fragment(将活动转换为片段时)中,区别在于使用getActivty.findViewById(…)可以在活动范围(活动的布局)中找到视图。使用iflater.充气(R.layout.fragment\u fragment\u v,空);view.findViewById(…)您正在膨胀片段的布局,然后在该布局中查找视图 但是,由于您的片段附加到活动,您将在两个方向上找到视图,但我建议您在片段的作用域

两者的区别是什么

getActivity().findViewById(...)


在Fragment(将活动转换为片段时)

中,区别在于使用
getActivty.findViewById(…)
可以在活动范围(活动的布局)中找到视图。使用
iflater.充气(R.layout.fragment\u fragment\u v,空);view.findViewById(…)
您正在膨胀片段的布局,然后在该布局中查找视图


但是,由于您的片段附加到活动,您将在两个方向上找到视图,但我建议您在片段的作用域中查找片段的视图,因为可能有多个具有公共布局的片段,这意味着可能有多个视图与同一ID相关联,这使得
getActivity().findBiewById(…)
getActivity()调用
findviewbyd
时方法不可靠您告诉Android在
活动
的布局中查找
视图
,因为
片段
托管在
活动
中,如果它在层次结构中,它将返回正确的
视图

通过使用膨胀的
视图调用findViewById
或者实际上是
getView()
框架提供的方法您基本上是告诉Android在
片段的
视图层次结构中查找
视图
,这应该是您首选的方法,因为
findViewById
算法必须从较少的视图集合中查找您的视图,因此搜索速度会更快

我将从开发人员文档中对getView()进行解释

getView()
Get the root view for the fragment's layout (the one returned by onCreateView(LayoutInflater, ViewGroup, Bundle)), if provided.
getView()
Get the root view for the fragment's layout (the one returned by onCreateView(LayoutInflater, ViewGroup, Bundle)), if provided.