0

我是 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;
    }
4

2 回答 2

4

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

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

当您调用setContentView(int)时,Activity 类会自动为您执行此过程

于 2013-02-05T22:45:21.457 回答
0

ALayoutInflater将 XML 文件“转换”为一个View对象,其中包含View该 XML 中指定的所有子项。您也可以说“平面”XML 文件“膨胀”为View.

另请参阅LayoutInflater | 安卓开发者

于 2013-02-05T22:46:05.850 回答