如何在Android中包含两次布局?

时间:2010-12-04 18:36:15

标签: android layout include

Android的<include />元素允许您包含其他XML布局。适用于多个活动的公共标题。

但是,如果您想在同一视图中包含几个次布局,该怎么办?例如,我有一个精心设计的布局,我希望在我的视图中显示三次。每个实例都需要不同的值。由于include基本上是采用XML并将其粘贴到,因此我需要更强大的功能。

有没有一些机制可以做到这一点?

(我是否正确解释了自己?)

4 个答案:

答案 0 :(得分:55)

http://www.coboltforge.com/2012/05/tech-stuff-layout/上的博客帖子(现在离线,但可以在https://web.archive.org/web/20160425233147/http://www.coboltforge.com/2012/05/tech-stuff-layout/找到)解释了这个问题(包括多次相同的布局XML)以及如何解决它!

修改

当您按ID搜索时,您总能找到第一个项目,因此隐藏了第二个小部件。

然而,它可以解决

<include> -- id1
    -- stuff
</include>
<include> -- id2
    -- stuff
</include>

所以我们可以通过首先查找id2 / id1找到子元素。

View include_1 = findViewById(R.id.id1); 
View include_2 = findViewById(R.id.id2); 

最后

include_2.findViewById(R.id.elementx );

答案 1 :(得分:5)

  

有没有一些机制可以做到这一点?

创建自定义ViewHere is a project我有一个ColorMixer自定义小部件,例如。如果您愿意,可以在一个活动布局中包含多个此类ColorMixers。每个都可以有自己的参数来定制它的操作。

答案 2 :(得分:3)

另一种方法是在xml中设置“模板”布局并使用LayoutInflater对其进行充气,并根据需要多次添加到视图中,并在每个插入自定义值。 Here是使用Layout inflater创建自定义Toast视图的示例。

答案 3 :(得分:2)

您可以使用android:id指定所包含布局的根视图的ID;如果定义了布局,它也会覆盖包含布局的id。同样,您可以覆盖所有布局参数。

根据提供的android:id,您可以按ID获取部分,然后您可以再次根据您刚检索的部分获取ID。这样,您将能够在两个步骤中在每个父级不同的id视图中查找具有相同ID的所有子视图。