inflater.inflate()有什么作用?

时间:2014-12-02 10:52:20

标签: android

我浏览了API,但无法理解。我无法理解这种方法的结果。我是Android和Android的新手。需要帮助。

package com.javacodegeeks.android.fragmentstest;
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class FragmentTwo extends Fragment
{
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
    {
        return inflater.inflate(R.layout.fragment_two, container, false);
    }
}

3 个答案:

答案 0 :(得分:5)

基本上,Inflate是一种解析第一个参数view并将其放在第二个参数ViewGroup内的方法。 第三个参数说,现在把视图放在ViewGroup或不是? 它是假的,你必须手动addView(view),如果你想根据条件添加一个视图,它的好处是

If (view != null){
addView(view);
}

默认情况下,如果您未指定它,则为true。 膨胀(R.layout.popup,myLinearLayout,TRUE); 基本上,将名为Popup.xml的布局文件更改为实际布局&不只是文本,然后放入在这种情况下指定的LinearLayout内部,它是myLinearLayout,True说现在说,我没有任何条件或任何事情要做。

答案 1 :(得分:4)

您的xml文件中定义了View。例如。你有一个列表行layout

您想要从该xml创建View。例如。您的ListAdapter要求您为View中的列表行创建ListAdapter.getView();

因此,使用inflater.inflate()可以从XML文件中创建View

还有一个静态方法View.inflate()也可以这样做。

答案 2 :(得分:0)

根据文件

inflater.inflate将 -

从指定的xml资源中膨胀新的视图层次结构。如果出现错误,则抛出InflateException。

简单来说,需要inflater.inflate来从XML创建视图。它就像解析或转换XML以生成UI一样。