android - 保留对膨胀的自定义 View 的引用

标签 android view

在研究如何在 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/

相关文章:

java - Android 位图图像内存不足

Android ConstraintLayout - 两个布局的顶部约束

android - 任何人都使用过 APKTool,Android 反编译器?

ios - 水平堆栈 View 新行 - Swift

MySQL View 花费太多时间来选择数据

MySQL 创建连接两个完整表的 View

java - 如何在android中更改ImageView源

android - Cordova安装问题:not installed properly and cordova command is working only on c:\>

mysql - 如何在 View 中获取具有位格式的列?

mysql - MySQL View 的性能比底层查询差