我有一个Android项目,有几个小视图,我需要在运行时实例化。我一直无法找到将所有这些相关视图存储在单个XML文件中的方法,现在我将会有很多这些XML文件。我只是想知道是否有办法将它们全部放在一个文件中,但不属于某个父ViewGroup。多个android视图可以存储在同一个.xml文件中,而不属于同一个父级?
由于无法制作子文件夹,所以所有东西都堆放在同一个地方,所以android中的layout文件夹很糟糕,唉。
我希望有人能告诉我组织这些事情的更好方法。
我有一个Android项目,有几个小视图,我需要在运行时实例化。我一直无法找到将所有这些相关视图存储在单个XML文件中的方法,现在我将会有很多这些XML文件。我只是想知道是否有办法将它们全部放在一个文件中,但不属于某个父ViewGroup。多个android视图可以存储在同一个.xml文件中,而不属于同一个父级?
由于无法制作子文件夹,所以所有东西都堆放在同一个地方,所以android中的layout文件夹很糟糕,唉。
我希望有人能告诉我组织这些事情的更好方法。
如果我正确地理解了你,你希望将几个视图记忆到一个屏幕上或合并成一个xml文件。你可以包含其他的XML到一个。
这篇文章展示了如何在XML布局中使用标签 来重用和共享布局代码。本文解释了标签以及它如何补充标签。
http://developer.android.com/resources/articles/layout-tricks-merge.html
此外,该视频可能会帮助(在约19分钟)。向您展示如何提取当前布局并能够将其包含在其他布局中。
一对夫妇:
是的,布局文件夹是一个痛苦。我使用严格的命名约定使其可以忍受,并且在eclipse中使用快捷键ctrl + shift + r
快速找到我正在寻找的布局。尝试在活动后命名您的布局:activity1_menu_overlay
和activity1_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
。
这种方法适用于动画,我只能用它在2个或3个可能的视图在一个XML文件。