在研究如何在 Android 中创建自定义复合 View 时,我经常遇到这种模式(示例来自 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 对象,但在这个例子中作者没有将结果存储在任何地方。膨胀后,如何从与此类关联的 XML 创建新 View ?我想过把它分配给“这个”,但这似乎很不对。
感谢任何澄清。
最佳答案
对this 的引用将是 View 组根。看这里: http://developer.android.com/reference/android/view/LayoutInflater.html#inflate(int , android.view.ViewGroup)
这意味着它正在将 xml 中的指定 View 膨胀为 this 作为父 View 。 xml 最终位于类定义的线性布局中。
编辑:放入完整链接,因为我似乎无法获得带括号的 URL 以正确转义
关于android - 保留对膨胀的自定义 View 的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2710526/