0

正如问题所读,android中的片段是View或ViewGroup。谁能解释

这是来自文档的 Fragment 的 onCreateView 方法

public static class ExampleFragment extends Fragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.example_fragment, container, false);
    }
}

传递给 onCreateView()的container参数是将片段布局插入其中的父 ViewGroup(来自活动的布局)

要为您的 Fragment 绘制 UI,您必须从此方法返回一个 View,它是 Fragment 布局的根。

4

5 回答 5

2

您不能将片段定义为视图或视图组。片段不止于此。可视化片段的最简单方法是将它们视为具有自己的 xml 外观的活动块,具有自己的生命周期回调的自己的行为。它们始终运行在一个活动,允许您在运行时对它们执行诸如添加、替换等操作。这样您就可以有效地在布局之间切换。
要理解onCreateView方法,请考虑以下解释:

public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState){
         View view =inflater.inflate(R.layout.example_fragment, container, false);
      return view;

    }

这将返回一个 View 对象,始终是 a ViewGroup,其中包含一组定义 Fragment 的 UI 的 View 对象。Activity当 Fragment 需要提供其 UI 以供显示时,将调用此事件处理程序。

于 2016-01-10T07:52:34.777 回答
1

片段是与主机活动生命周期相关的自定义视图的包装器。

于 2019-02-13T10:27:59.517 回答
0

我认为不是,activity(fragment)控制视图显示什么,viewGroup扩展视图并实现ViewManger。只有Activity加载相关视图才能手机显示布局。Activity是一个组,视图可以在这个容器中正常工作

于 2016-01-10T09:54:46.633 回答
0

两者都不。Fragment是一个基类。

来自https://developer.android.com/guide/components/fragments.html

AFragment表示 Activity 中的一种行为或用户界面的一部分

Fragment包含一个字段:

// The View generated for this fragment.
View mView;

生成onCreateView其中具有实现:

@Nullable
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
        Bundle savedInstanceState) {
    return null;
}

所以如果你想要一个Fragmentwith a Viewthen @Overridethat 方法。然后,如果您使用来自或嵌套Fragment的适当片段事务,则可以向用户显示。ActivityFragment

于 2016-09-15T08:08:09.037 回答
0

Fragment 是一种不占用全屏的 Activity,它可以将屏幕分割成多个 Fragment,因此非常适用于手机和平板电脑。

于 2016-01-10T07:42:58.723 回答