最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android修行手冊之ConstraintLayout布局使用詳解

 更新時間:2022年09月21日 09:49:43   作者:芝麻粒兒  
這篇文章主要為大家介紹了Android修行手冊之ConstraintLayout使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

??實踐過程

近期創(chuàng)建的項目默認是帶有的,如果沒有去build.gradle文件中查看有沒有引入

implementation 'androidx.constraintlayout:constraintlayout:2.1.4'

截止2022年8月最新版是2.1.4

??示例一

想要實現這個效果:

使用RelativeLayout無法實現,更不要說其他的了。哪怕紅塊底部對齊利用margin負數的形式做出來了,但是這就得是提前固定寬高,可固定高度又得考慮適配的事,或者干脆這個效果寬高要求是自適應,就挺難辦的。而ConstraintLayout能輕松實現。

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <TextView
        android:id="@+id/idTxtA"
        android:layout_width="100dp"
        android:layout_height="60dp"
        android:background="@color/color_00ff00"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent" />
    <TextView
        android:id="@+id/idTxtB"
        android:layout_width="40dp"
        android:layout_height="20dp"
        android:background="@color/color_ff0000"
        app:layout_constraintBottom_toBottomOf="@+id/idTxtA"
        app:layout_constraintLeft_toLeftOf="@+id/idTxtA"
        app:layout_constraintRight_toRightOf="@+id/idTxtA"
        app:layout_constraintTop_toBottomOf="@+id/idTxtA" />
</androidx.constraintlayout.widget.ConstraintLayout>

題外話:

ConstraintLayout的渲染耗時是隨著進入的頁面次數而不斷減少直到穩(wěn)定的。那這是為啥?

其實是Android機制,Android 5.0到Anroid 7.0 是預編譯成機器碼直接使用所以最快,但是7.0以上是即時編譯,會在手機空閑的時候才漸漸轉為機器碼,耗時才會逐漸減少。

??示例二

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:background="@color/black">
        <TextView
            android:id="@+id/idTxtA"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@color/color_00ff00"
            android:gravity="center"
            android:text="居中對齊"
            android:textColor="@color/white"
            android:textSize="18sp"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@color/color_00ff00"
            android:gravity="center"
            android:text="左上角"
            android:textColor="@color/white"
            android:textSize="18sp"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@color/color_00ff00"
            android:gravity="center"
            android:text="右上角"
            android:textColor="@color/white"
            android:textSize="18sp"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@color/color_00ff00"
            android:gravity="center"
            android:text="左下角"
            android:textColor="@color/white"
            android:textSize="18sp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintLeft_toLeftOf="parent" />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@color/color_00ff00"
            android:gravity="center"
            android:text="右下角"
            android:textColor="@color/white"
            android:textSize="18sp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintRight_toRightOf="parent" />
        <TextView
            android:layout_width="100dp"
            android:layout_height="60dp"
            android:background="@color/color_00ff00"
            android:gravity="center"
            android:text="底部居中對齊"
            android:textColor="@color/white"
            android:textSize="18sp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent" />
        <TextView
            android:id="@+id/idTxtB"
            android:layout_width="30dp"
            android:layout_height="10dp"
            android:background="@color/color_ff0000"
            app:layout_constraintBottom_toBottomOf="@+id/idTxtA"
            app:layout_constraintLeft_toLeftOf="@+id/idTxtA"
            app:layout_constraintRight_toRightOf="@+id/idTxtA"
            app:layout_constraintTop_toBottomOf="@+id/idTxtA" />
        <TextView
            android:id="@+id/idTxtC"
            android:layout_width="100dp"
            android:layout_height="80dp"
            android:background="@color/color_00ff00"
            android:gravity="center"
            android:text="A:左側居中"
            android:textColor="@color/white"
            android:textSize="18sp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
        <!--使用B的上邊和A的上邊對齊,B的下邊和A的下邊對齊,B的左邊和A的右邊對齊,B的右邊和父右邊對齊 來實現-->
        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:background="@color/color_ff0000"
            android:gravity="center"
            android:text="B:在【左側居中】的右側居中且填充滿父寬度"
            android:textColor="@color/white"
            android:textSize="18sp"
            app:layout_constraintBottom_toBottomOf="@id/idTxtC"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toEndOf="@+id/idTxtC"
            app:layout_constraintTop_toTopOf="@id/idTxtC" />
    </androidx.constraintlayout.widget.ConstraintLayout>
    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_marginTop="10dp"
        android:layout_weight="1">
        <!--實現一個左側圖片,右側兩個文本的效果:E和F文本需要左側位于D的右側,E需要頂部位于D的頂部,底部位于F的上部(很重要)
        F底部位于D的底部,F頂部位于E的底部。雖然其他方式也能實現效果,但是當修改D圖片高度的時候,其他布局實現的就可能需要調整,而這個不需要,還是會對齊-->
        <ImageView
            android:id="@+id/idTxtD"
            android:layout_width="140dp"
            android:layout_height="160dp"
            android:background="@mipmap/study_five"
            android:contentDescription="左上角"
            android:gravity="center"
            android:textColor="@color/white"
            android:textSize="18sp"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
        <TextView
            android:id="@+id/idTxtE"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@color/color_0000ff"
            android:gravity="center"
            android:text="E:標題,在D的右上側"
            android:textColor="@color/white"
            android:textSize="18sp"
            app:layout_constraintBottom_toTopOf="@id/idTxtF"
            app:layout_constraintStart_toEndOf="@id/idTxtD"
            app:layout_constraintTop_toTopOf="@id/idTxtD" />
        <TextView
            android:id="@+id/idTxtF"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@color/color_0000ff"
            android:gravity="center"
            android:text="F:說明,在D的右下邊,\nE的下面"
            android:textColor="@color/white"
            android:textSize="18sp"
            app:layout_constraintBottom_toBottomOf="@id/idTxtD"
            app:layout_constraintStart_toEndOf="@id/idTxtD"
            app:layout_constraintTop_toBottomOf="@id/idTxtE" />
        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:background="@color/color_0000ff"
            android:gravity="center"
            android:text="實現寬度鋪滿match_parent效果"
            android:textColor="@color/white"
            android:textSize="18sp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent" />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="0dp"
            android:background="@color/color_ff0000"
            android:gravity="center"
            android:text="實\n現\n寬\n度\n鋪\n滿\nmatch\n_\nparent\n效\n果"
            android:textColor="@color/white"
            android:textSize="18sp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
    </androidx.constraintlayout.widget.ConstraintLayout>
    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_marginTop="10dp"
        android:layout_weight="1">
        <TextView
            android:id="@+id/idTxtG"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:background="@color/color_0000ff"
            android:gravity="center"
            android:text="G:實現角度定位"
            android:textColor="@color/white"
            android:textSize="18sp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
        <TextView
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:background="@color/color_0000ff"
            android:gravity="center"
            android:text="在右上角"
            android:textColor="@color/white"
            android:textSize="18sp"
            app:layout_constraintCircle="@id/idTxtG"
            app:layout_constraintCircleAngle="45"
            app:layout_constraintCircleRadius="84dp" />
        <TextView
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:background="@color/color_0000ff"
            android:gravity="center"
            android:text="在左下角"
            android:textColor="@color/white"
            android:textSize="18sp"
            app:layout_constraintCircle="@id/idTxtG"
            app:layout_constraintCircleAngle="225"
            app:layout_constraintCircleRadius="84dp" />
        <TextView
            android:id="@+id/idTxtH"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@color/color_0000ff"
            android:gravity="center"
            android:text="H:測試隱藏"
            android:textColor="@color/white"
            android:textSize="18sp"
            android:visibility="gone"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
        <!--要想實現該控件指定就需要使用layout_goneMarginTop屬性,表示目標控件gone的時候該控件外邊距是多少-->
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:background="@color/color_0000ff"
            android:gravity="center"
            android:text="假設H隱藏,該控件要制定"
            android:textColor="@color/white"
            android:textSize="18sp"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@id/idTxtH"
            app:layout_goneMarginTop="0dp" />
        <!--如果layout_constraintWidth_max和layout_constraintWidth_percent結合使用 則對應的layout_width或layout_height為0dp-->
        <TextView
            android:layout_width="0dp"            
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:background="@color/color_0000ff"
            android:gravity="center"
            android:text="實現最大寬度限制大寬度限制大寬度限制大寬度限制"
            android:textColor="@color/white"
            android:textSize="18sp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintWidth_max="wrap"
            app:layout_constraintWidth_percent="0.8"
            app:layout_goneMarginTop="0dp" />
    </androidx.constraintlayout.widget.ConstraintLayout>
    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_marginTop="10dp"
        android:layout_weight="1">
        <TextView
            android:layout_width="0dp"
            android:layout_height="100dp"
            android:background="@color/color_0000ff"
            android:gravity="center"
            android:text="寬高比"
            android:textColor="@color/white"
            android:textSize="18sp"
            app:layout_constraintDimensionRatio="1:1"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
        <!--下方是試驗鏈約束,layout_constraintHorizontal_chainStyle有三個值:spread是默認,spread_inside是攤開,packed是緊挨著,試驗下就知道了-->
        <TextView
            android:id="@+id/idTxtI"
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:background="@color/color_0000ff"
            android:gravity="center"
            android:text="I"
            android:textColor="@color/white"
            android:textSize="18sp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintHorizontal_chainStyle="packed"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toLeftOf="@+id/idTxtJ" />
        <TextView
            android:id="@+id/idTxtJ"
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:background="@color/color_0000ff"
            android:gravity="center"
            android:text="J"
            android:textColor="@color/white"
            android:textSize="18sp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintLeft_toRightOf="@+id/idTxtI"
            app:layout_constraintRight_toLeftOf="@id/idTxtK" />
        <TextView
            android:id="@+id/idTxtK"
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:background="@color/color_0000ff"
            android:gravity="center"
            android:text="K"
            android:textColor="@color/white"
            android:textSize="18sp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintLeft_toRightOf="@id/idTxtJ"
            app:layout_constraintRight_toRightOf="parent" />
        <!--下方幾個是測試權重-->
        <TextView
            android:id="@+id/idTxtL"
            android:layout_width="40dp"
            android:layout_height="0dp"
            android:background="@color/color_0000ff"
            android:gravity="center"
            android:text="測"
            android:textColor="@color/white"
            android:textSize="18sp"
            app:layout_constraintBottom_toTopOf="@id/idTxtM"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintVertical_weight="1" />
        <TextView
            android:id="@+id/idTxtM"
            android:layout_width="40dp"
            android:layout_height="0dp"
            android:background="@color/color_0000ff"
            android:gravity="center"
            android:text="權"
            android:textColor="@color/white"
            android:textSize="18sp"
            app:layout_constraintBottom_toTopOf="@id/idTxtN"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintTop_toBottomOf="@id/idTxtL"
            app:layout_constraintVertical_weight="1" />
        <TextView
            android:id="@+id/idTxtN"
            android:layout_width="40dp"
            android:layout_height="0dp"
            android:background="@color/color_0000ff"
            android:gravity="center"
            android:text="重"
            android:textColor="@color/white"
            android:textSize="18sp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintTop_toBottomOf="@id/idTxtM"
            app:layout_constraintVertical_weight="1" />
    </androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>

實現效果 

以上就是Android修行手冊之ConstraintLayout使用示例詳解的詳細內容,更多關于Android手冊ConstraintLayout的資料請關注腳本之家其它相關文章!

相關文章

最新評論

沈丘县| 襄城县| 肇东市| 邢台市| 朝阳县| 夏津县| 尚志市| 辽阳县| 德安县| 清水县| 扎赉特旗| 甘德县| 霸州市| 长白| 湖州市| 思茅市| 阳谷县| 榆树市| 安溪县| 赤城县| 社会| 拜城县| 通榆县| 伊金霍洛旗| 同江市| 仲巴县| 阳春市| 当涂县| 那曲县| 大安市| 栾城县| 保德县| 广灵县| 临城县| 同心县| 杭锦后旗| 栾城县| 临颍县| 静宁县| 肇源县| 固始县|