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

相關問題