inflater.inflate()是什么意思?

3

我查看了API,但是并没有很好地理解。我无法理解这个方法的结果。我完全是新手,并需要帮助。

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);
    }
}

1
“填充”是在运行时向活动添加视图(.xml)的过程。 - Maveňツ
3个回答

11

基本上,Inflate是一种解析第一个参数view并将其放置在第二个参数ViewGroup中的方法。 第三个参数表示,现在是否将视图放置在ViewGroup中? 如果为false,您需要手动执行addView(view) ,它的好处可能是如果您想根据条件添加视图。

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

如果您没有指定,默认情况下它为真。 inflate(R.layout.popup,myLinearLayout,true); 基本上,将名为Popup.xml的布局文件更改为实际布局,而不仅仅是文本,然后将其放置在指定的LinearLayout内,在这种情况下,它是myLinearLayout。True表示现在将其放置,我没有任何条件或其他事情要做。


最好的解释,涵盖了三个参数。 - flz
很高兴听到这个消息! - Ahmed I. Elsayed

8
您在xml文件中定义了一个View,例如,您有一个列表行的layout
您想从该xml创建一个View。例如,在ListAdapter.getView()中,您需要为列表行创建一个View
因此,通过使用inflater.inflate(),您可以从xml文件中创建自己的View
还有一个静态方法View.inflate()可以实现同样的功能。

讲解得很清楚,谢谢。 - Josphat Mwania

2

根据文档

inflater.inflate 将会 -

从指定的 XML 资源中膨胀出一个新的视图层次结构。如果存在错误,将抛出 InflateException 异常。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接