69

RelativeLayout优于LinearLayout在android中有什么优势?对于一个你更喜欢的特定设计,背后的原因是什么?LinearLayout vs RelativeLayout

它是(RelativeLayout)相似还是类似HTML <div>

+3

它的更好,如果你搜索你的问题标签[LinearLayout中VS的RelativeLayout(在谷歌上http://www.google.co.in/search?q=LinearLayout+vs+RelativeLayout&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a)。 – user370305 2012-07-06 05:38:12

+0

+1,本文中有一个相当不错的答案:[何时使用LinearLayout与RelativeLayout](http://logc.at/2011/10/18/when-to-use-linearlayout-vs-relativelayout/ ) – scatmoi 2013-04-17 23:49:48

回答

45

阅读this article

Android的UI工具包提供了一些布局管理是相当容易使用,并且,大多数时候,你只需要这些布局管理器的基本功能,实现用户界面。不幸的是,坚持基本功能不是创建用户界面的最有效方式。一个常见的例子是LinearLayout的滥用,导致视图层次结构中的视图激增。您添加到应用程序中的每个视图或更糟的每个布局管理器都需要付出代价:初始化,布局和绘制变得更慢。当您嵌套使用weight参数的多个LinearLayout时,布局过程可能特别昂贵,这需要儿童测量两次...

在RelativeLayout中,视图与父对象,RelativeLayout本身或其他意见。例如,我们声明描述与RelativeLayout的底部对齐,并且标题位于描述之上并锚定在父项的顶部。使用描述GONE,RelativeLayout不知道标题底边的位置。要解决这个问题,你可以使用一个非常特殊的布局参数alignWithParentIfMissing

这个布尔参数只是告诉RelativeLayout当约束目标丢失时使用它自己的边作为锚。例如,如果您将视图放置在GONE视图的右侧并将alignWithParentIfMissing设置为true,则RelativeLayout将将视图锚定到其左侧边缘。在我们的例子中,使用alignWithParentIfMissing将导致RelativeLayout将标题的底部与它自己的底部对齐。

...的差异将更加重要,当你使用这样的布局中,例如一个ListView每一个项目......

+0

https://www.crittercism.com/blog/android-performance-tip-1/ – 2014-12-12 10:11:35

14

通过名称可以知道LinearLayout通过您设置的方向以垂直或水平线性添加视图。它将依次增加意见,这取决于设计的要求。并且RelativeLayout增加了彼此相关的视图,无需在RelativeLayout中声明方向。

至于比如你要添加在另外两个TextView■一个,所以你会首先添加和TextView通过XML文件中添加android:layout_below="first textview's id"指第二TextView与第一TextView。这样你可以处理RelativeLayout

相关问题