onCreateView的工作原理

时间:2017-05-04 10:37:37

标签: android

我启动了一个TabLayout Activity,其中包含以下代码来创建片段:

static getDerivedStateFromProps(props, state) {
    if(state.prevMembers !== props.members) {
         return { members: nextProps.members, prevMembers: props.members };
    }
    return { prevMembers: props.members };
}

我已阅读官方文档,但仍不确定其工作原理。如果有人能够详细解释这里的每个部分是如何运作的那么好。

编辑:主要是指@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_find, container, false); TextView textView = (TextView) rootView.findViewById(R.id.section_label); textView.setText(getString(R.string.section_format, getArguments().getInt(ARG_SECTION_NUMBER))); return rootView; } 这3个参数中的每一个正在做什么以及inflater.inflate()如何在这里工作。

2 个答案:

答案 0 :(得分:0)

<强> onCreateView():

调用onCreate()后(在Fragment中),调用Fragment的onCreateView()。您可以分配View变量并执行任何图形初始化。您应该从此方法返回一个View,这是主UI视图,但如果您的Fragment不使用任何布局或图形,则可以返回null(默认情况下,如果您不覆盖)。

这里,它是Fragment生命周期的一种方法。 Here, it's a method of lifecycle for Fragment.

答案 1 :(得分:0)

好的,我们走了。

inflating的过程只是显式创建视图而不是隐式地创建视图,这是通过使用它:

public void onCreate(){
         setContentView(R.layout.your_layout);
    }

this问题进行比较。

现在有了参数。将其与this section进行比较。

  • R.layout.fragment_find返回代码中某处使用的片段的ID。 R是一个动态的Android类,用于处理您的某些应用资源,例如视图,字符串等。Compare
  • container是某些ViewGroup的根。因此,您可以使用一组按钮来执行常见操作(例如,在应用程序中选择一些颜色),并且它们都具有相同的parent,在您的情况下称为容器。
  • attachToRoot是最后一个参数。根据文件:
      

    如果为false,则root仅用于为XML中的根视图创建LayoutParams的正确子类。

所以它与我们在最后一点谈到的父母没有联系。 Compare here

我希望这会有所帮助。