当我在布局中使用include
时,我必须将宽度和高度设置为include
标记以及链接到的布局。否则它将无法正常工作。所以,似乎include
不是链接,而是View的子类,如果它有自己的宽度,高度,id等等。但是在developer's site上没有include
这样的类。你是谁,include
先生?
答案 0 :(得分:3)
可以将<include>
标记视为内部布局的复制/粘贴。它是View Inflater
类中xml解析的一部分。它有效地获取布局ID,膨胀您传入的xml对象,然后根据所包含布局的属性将其添加到它正在膨胀的主布局中。您可以在继承自View
。
您可以覆盖其中包含layout_
的任何属性。如果它们包含在您所包含的布局的根目录中,则 不会覆盖宽度和高度属性。 然而,如果您要覆盖任何其他属性,执行必须覆盖这些参数。这是解析<include>
的错误的一部分。如果您要更改,例如layout_marginLeft
,则必须将layout_width
和layout_height
覆盖到布局中的相同值,以便解析器覆盖左边距属性
答案 1 :(得分:1)
include
实际上不需要宽度和高度。换句话说,这完全有效:
<include layout="@layout/my_included_layout" />
只要my_included_layout
具有宽度和高度的根元素,它就会很高兴。