2016-06-23 89 views
28

爲什麼RelativeLayout替換爲ConstraintLayout在Android空活動的默認佈局文件。我需要知道爲什麼我們應該使用ConstraintLayout,它爲我們提供了什麼其他好處。爲什麼選擇Constraints佈局,因爲我們已經有相對佈局?

+29

因爲它是新的。新事物有光澤 –

+2

它本質上是一個更好的'RelativeLayout'。它可以完成'RelativeLayout'不能做的許多事情,並且它具有更好的性能。 –

+0

當然很高興與您合作。您可以使用'RelativeLayout'來簡化您無法實現的佈局。我鼓勵任何人玩弄它,它很棒。當然不要使用圖形編輯器,它們總是很糟糕。直接編輯xml以充分利用佈局。 –

回答

18

由Xaver Kapeller提供 - 「ConstraintLayout的主要目的是解決RelativeLayout的問題,它做得很好,可以做很多不可能的事情,而且可以通過RelativeLayout來實現。佈局就像你以前從未有過的那樣,另外,它修復了RelativeLayout長期存在的性能問題,即在度量/佈局階段的雙重徵稅,所以我們在一個漂亮的包中獲得了更好的性能,更多的功能和更簡單的佈局。

使用它的另一個好處是它允許您使用拖放來創建佈局和的方式直觀地拖放樣式編輯器的RelativeLayout不能類似界面生成器在Xcode。

約束佈局:這種新的佈局是一種靈活的佈局管理器,可讓您創建動態用戶界面,而無需嵌套多個佈局。它分佈爲被緊密耦合與Android Studio和到API級別9.

向後兼容乍一看一個支持庫,約束佈局類似於RelativeLayout的。 然而,約束佈局被設計在Studio中使用和 讓你依靠較少的 佈局類似的LinearLayout,FrameLayout裏,TableLayout,或網格佈局能有效地表達你的應用程序的設計。最後,用內置的自動約束推理引擎。您可以根據自己的喜好自由設計您的用戶界面,並讓Android Studio執行 努力工作。

+3

你可以給我任何例子嗎?相對佈局失敗或比ConstraintLayout需要更多時間/代碼? –

+0

我喜歡這個答案比鏈接問題中的答案更好,因爲它強調了ConstraintLayout優於RelativeLayout而不僅僅是另一種風格。 – AnthonyW