亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android開發 - 掌握ConstraintLayout(一)傳統布局的問題

發布時間:2020-10-19 17:57:36 來源:網絡 閱讀:526 作者:羅伊德666 欄目:移動開發

在傳統的Android開發中,頁面布局占用了我們很多的開發時間,而且面對復雜頁面的時候,傳統的一些布局會顯得非常復雜,每種布局都有特定的應用場景,我們通常需要各種布局結合起來使用來實現復雜的頁面。隨著ConstraintLayout的推出,這種現象有了很大的改善,而且它可以實現很多傳統布局難以實現的功能。

本系列我們就一起來學習ConstraintLayout的使用,來大幅提高我們的生產力。

傳統布局

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

  • FrameLayout:幀布局。最常用并且簡單的布局,通常用于錯誤頁面的顯示,蒙層的顯示等。
  • LinearLayout:線性布局。當我們繪制需要順序排列的內容時,我們使用使用此布局。
  • RelativeLayout:相對布局。相當于ConstraintLayout的低級版本。顧名思義,可以各個View之間相對地指定位置進行布局。
  • ...

存在的問題

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

Android開發 - 掌握ConstraintLayout(一)傳統布局的問題

我們如果使用傳統的布局,可能會導致布局的層級多層嵌套:

<RelativeLayout>
    <ImageView/>
    <ImageView/>
    <RelativeLayout>
        <TextView/>
        <LinearLayout>
            <TextView/>
            <RelativeLayout>
                <EditText/>
            </RelativeLayout>
        </LinearLayout>
        ...
    </RelativeLayout>
    ...
</RelativeLayout>
  • 布局復雜
    使用傳統的布局雖然可以實現我們的需求,但是在代碼實現中有非常多的嵌套,而且要結合許多布局的特性來實現,這樣復雜的布局讓我們難以維護。

  • 效率底下
    當布局層級越深的時候,系統的繪制效率越低,當子View.invalidate()的時候,也會導致其父View進行重新繪制。
    又比如這些布局中相對靈活的RelativeLayout,它會被測量至少兩次,已確定最終渲染時的位置,也同樣會影響效率。

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

ConstraintLayout登場!

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

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

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

如有更多疑問,請參考我的其它Android相關博客:我的博客地址

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

乌拉特后旗| 崇阳县| 库车县| 蚌埠市| 昌宁县| 通海县| 洞口县| 综艺| 安龙县| 邵武市| 饶阳县| 乳源| 中牟县| 普洱| 昔阳县| 灵川县| 盖州市| 闵行区| 绵阳市| 丹凤县| 怀柔区| 张家港市| 海口市| 永昌县| 长岭县| 金乡县| 荔浦县| 武义县| 肇州县| 南涧| 清原| 安宁市| 广东省| 海城市| 金塔县| 常德市| 苏尼特右旗| 克什克腾旗| 阳曲县| 平顶山市| 克山县|