多个android视图可以存储在同一个.xml文件中而不属于同一个父级吗?

时间:2012-03-22 03:27:15

标签: java android xml viewgroup

我有一个android项目,它有几个小视图,我需要在运行时实例化。我无法找到将所有这些相关视图存储在单个xml文件中的方法,现在我将会有许多这些xml文件。我只是想知道是否有任何方法可以将它们全部放在一个文件中,但不属于某个父ViewGroup。

android中的布局文件夹很糟糕,因为没有办法制作子文件夹,所有东西都只是堆放在同一个地方,呃。

我希望有人能告诉我组织这些事情的更好方法。

2 个答案:

答案 0 :(得分:0)

如果我理解正确,您需要将多个视图合并到一个屏幕上或合并到一个xml文件中。您可以将其他xml包含在一个中。

  

文章向您展示了如何在XML布局中使用标记,   重用和共享您的布局代码。本文解释了标记及其如何补充标记。

http://developer.android.com/resources/articles/layout-tricks-merge.html

此外,此视频可能有所帮助(约19分钟)。向您展示如何提取当前布局并将其包含在其他布局中。

答案 1 :(得分:0)

一些事情:

是的,布局文件夹很痛苦。我使用严格的命名约定使其可以忍受,并且在eclipse中使用快捷方式ctrl + shift + r来快速找到我正在寻找的布局。尝试在活动结束后命名布局:activity1_menu_overlayactivity1_main。使用上面的快捷方式,只需输入Activity1,它只会显示相关的布局。

如果这不起作用,您可以尝试在LinearLayouts中包装所有观看次数并使用view.setVisibility(View.Gone);view.setVisibility(View.Visible);来显示/隐藏相应的观看次数。

这是第二个例子,因为很难解释。

一个XML文件:

<LinearLayout>
    <LinearLayout ... android:visibility="visible">
        <copy/paste of view 1>
    </Linearlayout>
    <Linearlayout ... android:visibility="gone">
        <copy/paste of view 2>
    </Linearlayout>
    <Linearlayout ... android:visibility="gone">
        <copy/paste of view 3>
    </Linearlayout>
    <Linearlayout ... android:visibility="gone">
        <copy/paste of view etc.>
    </Linearlayout>
</Linearlayout>

请注意,此方法需要您在活动中定义对每个“子”LinearLayout视图的引用,以便您可以适当地调用setVisiblity

这种方法适用于动画,我只会在一个xml文件中用于2或3个可能的视图。