保持对夸大的自定义视图的引用

时间:2010-04-26 00:26:36

标签: android views

在研究如何在Android中创建自定义复合视图时,我经常遇到这种模式(示例来自Orange11 blog):

public class FirstTab extends LinearLayout {
private ImageView imageView;
private TextView textView;
private TextView anotherTextView;

public FirstTab(Context context, AttributeSet attributeSet) {
    super(context, attributeSet);

    LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    inflater.inflate(R.layout.firstTab, this);
}

}

我主要理解这是如何工作的,除了调用inflate()的部分。文档说该方法返回一个View对象,但在此示例中,作者不会将结果存储在任何位置。在通货膨胀之后,新的View是如何从与此类关联的XML创建的?我想把它分配给“这个”,但这似乎非常错误。

感谢您的任何澄清。

1 个答案:

答案 0 :(得分:2)

this 的引用将是viewgroup root。看这里: http://developer.android.com/reference/android/view/LayoutInflater.html#inflate(int,android.view.ViewGroup)

这意味着它是通过 this 作为父视图从xml中膨胀指定视图。 xml最终位于由类定义的Linear布局内。

编辑:输入完整的链接,因为我似乎无法获得带括号的网址以正确转义