View子类包括哪些内容?

时间:2012-02-15 14:25:19

标签: java android android-layout

当我在布局中使用include时,我必须将宽度和高度设置为include标记以及链接到的布局。否则它将无法正常工作。所以,似乎include不是链接,而是View的子类,如果它有自己的宽度,高度,id等等。但是在developer's site上没有include这样的类。你是谁,include先生?

2 个答案:

答案 0 :(得分:3)

可以将<include>标记视为内部布局的复制/粘贴。它是View Inflater类中xml解析的一部分。它有效地获取布局ID,膨胀您传入的xml对象,然后根据所包含布局的属性将其添加到它正在膨胀的主布局中。您可以在继承自View

的任何内容中使用它

您可以覆盖其中包含layout_的任何属性。如果它们包含在您所包含的布局的根目录中,则 不会覆盖宽度和高度属性。 然而,如果您要覆盖任何其他属性,执行必须覆盖这些参数。这是解析<include>的错误的一部分。如果您要更改,例如layout_marginLeft,则必须将layout_widthlayout_height覆盖到布局中的相同值,以便解析器覆盖左边距属性

答案 1 :(得分:1)

如果指定所包含布局的根元素的宽度和高度,则

include实际上不需要宽度和高度。换句话说,这完全有效:

<include layout="@layout/my_included_layout" />

只要my_included_layout具有宽度和高度的根元素,它就会很高兴。