Android開發(fā) - 掌握ConstraintLayout(一)傳統(tǒng)布局的問題

在傳統(tǒng)的Android開發(fā)中瞒窒,頁面布局占用了我們很多的開發(fā)時間利凑,而且面對復(fù)雜頁面的時候道逗,傳統(tǒng)的一些布局會顯得非常復(fù)雜奸焙,每種布局都有特定的應(yīng)用場景瞎暑,我們通常需要各種布局結(jié)合起來使用來實現(xiàn)復(fù)雜的頁面。隨著ConstraintLayout的推出与帆,這種現(xiàn)象有了很大的改善了赌,而且它可以實現(xiàn)很多傳統(tǒng)布局難以實現(xiàn)的功能。

本系列我們就一起來學(xué)習(xí)ConstraintLayout的使用玄糟,來大幅提高我們的生產(chǎn)力勿她。

傳統(tǒng)布局

在ConstraintLayout退出之前,我們經(jīng)常使用FrameLayout, LinearLayout, RelativeLayout, ***Layout等來布局頁面阵翎。這些布局當然有其方便的地方逢并,但是其方便地同時也限制了我們的使用場景,在寫一些復(fù)雜頁面的時候就顯得力不從心郭卫,我們先做一下簡單地回顧:

  • FrameLayout:幀布局砍聊。最常用并且簡單的布局,通常用于錯誤頁面的顯示贰军,蒙層的顯示等玻蝌。
  • LinearLayout:線性布局。當我們繪制需要順序排列的內(nèi)容時,我們使用使用此布局俯树。
  • RelativeLayout:相對布局帘腹。相當于ConstraintLayout的低級版本。顧名思義许饿,可以各個View之間相對地指定位置進行布局竹椒。
  • ...

存在的問題

以上布局并不是完美的,比如我們要布局這個頁面:

-w540

我們?nèi)绻褂脗鹘y(tǒng)的布局米辐,可能會導(dǎo)致布局的層級多層嵌套:

<RelativeLayout>
    <ImageView/>
    <ImageView/>
    <RelativeLayout>
        <TextView/>
        <LinearLayout>
            <TextView/>
            <RelativeLayout>
                <EditText/>
            </RelativeLayout>
        </LinearLayout>
        ...
    </RelativeLayout>
    ...
</RelativeLayout>
  • 布局復(fù)雜
    使用傳統(tǒng)的布局雖然可以實現(xiàn)我們的需求,但是在代碼實現(xiàn)中有非常多的嵌套书释,而且要結(jié)合許多布局的特性來實現(xiàn)翘贮,這樣復(fù)雜的布局讓我們難以維護。

  • 效率底下
    當布局層級越深的時候爆惧,系統(tǒng)的繪制效率越低狸页,當子View.invalidate()的時候,也會導(dǎo)致其父View進行重新繪制扯再。
    又比如這些布局中相對靈活的RelativeLayout芍耘,它會被測量至少兩次,已確定最終渲染時的位置熄阻,也同樣會影響效率斋竞。

  • 難以創(chuàng)建復(fù)雜動畫
    Android在屬性動畫(ObjectAnimator)推出之前,執(zhí)行動畫的原理其實只是在繪制的時候執(zhí)行秃殉,并不是真正的改變了布局坝初,在屬性推出之后,雖然確實可以改變其真實的布局屬性钾军,但是由于布局特性的約束以及各個View之間的約束鳄袍,創(chuàng)建復(fù)雜的動畫也并非易事。

ConstraintLayout登場吏恭!

下面我們進入本系列的主角:ConstraintLayout!

使用ConstraintLayout可以解決以上傳統(tǒng)布局存在的種種問題拗小,而且Android Studio也提供了強大而且簡單易用的編輯器,使用它可以讓我們的開發(fā)效率大大增加樱哼。

下一篇我們將介紹它:Android開發(fā) - 使用ConstraintLayout(二)介紹

本文地址哀九,如有更多疑問,請參考我的其它Android相關(guān)博客:我的博客地址

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末搅幅,一起剝皮案震驚了整個濱河市勾栗,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌盏筐,老刑警劉巖围俘,帶你破解...
    沈念sama閱讀 212,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡界牡,警方通過查閱死者的電腦和手機簿寂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來宿亡,“玉大人常遂,你說我怎么就攤上這事⊥燔” “怎么了克胳?”我有些...
    開封第一講書人閱讀 158,369評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長圈匆。 經(jīng)常有香客問我漠另,道長,這世上最難降的妖魔是什么跃赚? 我笑而不...
    開封第一講書人閱讀 56,799評論 1 285
  • 正文 為了忘掉前任笆搓,我火速辦了婚禮,結(jié)果婚禮上纬傲,老公的妹妹穿的比我還像新娘满败。我一直安慰自己,他們只是感情好叹括,可當我...
    茶點故事閱讀 65,910評論 6 386
  • 文/花漫 我一把揭開白布算墨。 她就那樣靜靜地躺著,像睡著了一般汁雷。 火紅的嫁衣襯著肌膚如雪米同。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,096評論 1 291
  • 那天摔竿,我揣著相機與錄音面粮,去河邊找鬼。 笑死继低,一個胖子當著我的面吹牛熬苍,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播袁翁,決...
    沈念sama閱讀 39,159評論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼柴底,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了粱胜?” 一聲冷哼從身側(cè)響起柄驻,我...
    開封第一講書人閱讀 37,917評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎焙压,沒想到半個月后鸿脓,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體抑钟,經(jīng)...
    沈念sama閱讀 44,360評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,673評論 2 327
  • 正文 我和宋清朗相戀三年野哭,在試婚紗的時候發(fā)現(xiàn)自己被綠了在塔。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,814評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡拨黔,死狀恐怖蛔溃,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情篱蝇,我是刑警寧澤贺待,帶...
    沈念sama閱讀 34,509評論 4 334
  • 正文 年R本政府宣布,位于F島的核電站零截,受9級特大地震影響麸塞,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜瞻润,卻給世界環(huán)境...
    茶點故事閱讀 40,156評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望甜刻。 院中可真熱鬧绍撞,春花似錦、人聲如沸得院。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽祥绞。三九已至非洲,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蜕径,已是汗流浹背两踏。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留兜喻,地道東北人梦染。 一個月前我還...
    沈念sama閱讀 46,641評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像朴皆,于是被迫代替她去往敵國和親帕识。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,728評論 2 351

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,870評論 25 707
  • 用兩張圖告訴你遂铡,為什么你的 App 會卡頓? - Android - 掘金 Cover 有什么料肮疗? 從這篇文章中你...
    hw1212閱讀 12,704評論 2 59
  • 太長不看版:在 Android UI 布局過程中,遵守一些慣用扒接、有效的布局原則伪货,可以制作出高效且復(fù)用性高的 UI们衙。...
    Mupceet閱讀 3,831評論 0 14
  • 原文鏈接:https://github.com/opendigg/awesome-github-android-u...
    IM魂影閱讀 32,923評論 6 472
  • 所謂“吉人自有天相”,就是天佑善人超歌,即好人會得到上天的幫助砍艾。一個人的命運跟先天有關(guān),但如果你不好好修造巍举,你的福氣也...
    明如鏡閱讀 280評論 0 0