为什么我在android中使用layoutinflater?

时间:2013-02-05 22:25:09

标签: java android

我是Android的初学者:

你能解释一下layoutinflater的作用吗?你能解释它的用途吗,特别是在这段代码中?

我有这段代码:

 private class MyPagerAdapter extends PagerAdapter {

    public int getCount() {
        return 5;
    }

    public Object instantiateItem(View collection, int position) {

    *** LayoutInflater inflater = (LayoutInflater) collection.getContext()
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        int resId = 0;
        switch (position) {
        case 0:
            resId = R.layout.farleft;
            break;
        case 1:
            resId = R.layout.left;
            break;
        case 2:
            resId = R.layout.middle;
            break;
        case 3:
            resId = R.layout.right;
            break;
        case 4:
            resId = R.layout.farright;
            break;
        }

        View view = inflater.inflate(resId, null);

        ((ViewPager) collection).addView(view, 0);

        return view;
    }

2 个答案:

答案 0 :(得分:4)

LayoutInflater服务将存储的XML布局副本转换为应用程序进程内存空间中真实实例化视图的集合。

  • 您在编辑器中创建的布局将另存为XML。
  • XML作为资源嵌入到您的应用中。
  • layoutinflater读取资源文件。
  • 然后创建您指定为对象的视图。
  • 您现在可以从代码中操作视图对象。

当您致电setContentView(int)

时,Activity类会自动执行此过程

答案 1 :(得分:0)

LayoutInflater'将XML文件转换为View对象,其中包含该XML中指定的所有View子项。您还可以说'扁平'XML文件'膨胀'为View

另见LayoutInflater | Android Developers