从xml文件中膨胀视图是什么意思?

我是新来的android开发,并不断从跨布局xml文件的膨胀视图引用。 我search了search开发指南,但仍然无法理解它的含义。 如果有人能提供一个非常简单的例子,那将是非常感激的。

当你编写一个XML布局时,它会被Android OS 夸大 ,这基本上意味着它将通过在内存中创build视图对象来呈现。 我们称之为隐含的通货膨胀 (操作系统将为您夸大观点)。 例如:

class Name extends Activity{ public void onCreate(){ // the OS will inflate the your_layout.xml // file and use it for this activity setContentView(R.layout.your_layout); } } 

您也可以通过使用LayoutInflater明确地充气视图。 在这种情况下,你必须:

  1. 获取LayoutInflater一个实例
  2. 指定要膨胀的XML
  3. 使用返回的View

例如:

 LayoutInflater inflater = LayoutInflater.from(YourActivity.this); // 1 View theInflatedView = inflater.inflate(R.layout.your_layout, null); // 2 and 3 

“膨胀”视图意味着采用布局XML并对其进行parsing,以根据其中指定的元素及其属性创build视图和视图组对象,然后将这些视图和视图组的层次结构添加到父视图组。 当您调用setContentView()时,它将从读取XML创build的视图附加到活动。 您还可以使用LayoutInflater将视图添加到另一个ViewGroup,在许多情况下这可能是一个有用的工具。

膨胀是在运行时添加视图(.xml)到活动的过程。 当我们创build一个listView时,我们dynamic地给它的每个项目充气。 如果我们想创build一个包含多个视图(如button和文本视图)的ViewGroup。 我们可以像创build它

 Button but = new Button(); but.setText ="button text"; but.background ... but.leftDrawable.. and so on... TextView txt = new TextView(); txt.setText ="button text"; txt.background ... and so on... 

然后我们必须创build一个布局,我们可以添加上面的视图

 RelativeLayout rel = new RelativeLayout(); rel.addView(but); 

现在,如果我们想在右下angular添加button,并在底部添加textview。 我们必须做很多工作。 首先是视图属性,其次我们必须应用多个约束。 这是一个艰难和耗时的工作。

Android使我们可以轻松地创build一个简单的.xml,并在xml中devise它的样式和属性,只需简单地将它膨胀到需要的地方,而不需要设置约束和编程设置的混淆。

 LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); View menuLayout = inflater.inflate(R.layout.your_menu_layout, mainLayout, true); //now add menuLayout to wherever you want to add like (RelativeLayout)findViewById(R.id.relative).addView(menuLayout); 

我认为在这里“膨胀视图”意味着获取layout.xml文件绘制该XML文件中指定的视图,并使用创build的视图对父viewGroup进行POPULATING(=膨胀)。

因为我们把UI变成XML,但是视图对象就是我们显示的,所以我们需要把xml转换成视图对象,所以我们把xml转换成视图对象,这样就可以显示出来,为此我们需要一个名为布局的气体发生器服务并给它一个XML,它会被转换为你。