0

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

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

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

4

2 回答 2

0

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

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

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

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

于 2012-03-22T03:30:19.650 回答
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 个可能的视图。

于 2012-03-22T03:39:27.833 回答