美文网首页android技术android收藏集合
安卓constantlayout 代替Relativelayou

安卓constantlayout 代替Relativelayou

作者: findTrueLoveByM | 来源:发表于2020-08-14 09:30 被阅读0次

    基本用法

    layout_constraintLeft_toLeftOf="parent" 控件的左方与父控件的左边对齐
    layout_constraintLeft_toRightOf="@+id/tv1" 控件的左方与指定控件的右边对齐
    layout_constraintRight_toRightOf:当前Viewr的右边在某个View的右边,可以是parent与某个View的ID
    layout_constraintRight_toLeftOf:当前Viewr的右边在某个View的左边,可以是parent与某个View的ID
    layout_constraintBottom_toBottomOf:当前Viewr的下边在某个View的下边,可以是parent与某个View的ID
    layout_constraintBottom_toTopOf:当前Viewr的下边在某个View的上边,可以是parent与某个View的ID
    layout_constraintTop_toTopOf:当前Viewr的上边在某个View的上边,可以是parent与某个View的ID
    layout_constraintTop_toBottomOf:当前Viewr的上边在某个View的下边,可以是parent与某个View的ID
    

    想要实现下面的效果如图


    Screenshot_2020-08-13-17-09-08-238_com.change.the.jpg

    代码如下

    <androidx.constraintlayout.widget.ConstraintLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity"
       >
    
        <TextView
            android:id="@+id/tv1"
            android:layout_width="0dp"
            android:layout_height="50dp"
            android:background="@color/colorAccent"
            android:text="1"
            android:textSize="20sp"
            android:textColor="@color/colorPrimaryDark"
            android:gravity="center"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toLeftOf="@+id/tv2"
    
          />
        <TextView
        android:id="@+id/tv2"
        android:layout_width="0dp"
        android:layout_height="50dp"
        android:background="@color/colorBlack"
        android:text="2"
        android:textSize="20sp"
        android:textColor="@color/colorPrimaryDark"
        android:gravity="center"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toRightOf="@+id/tv1"
        app:layout_constraintRight_toLeftOf="@+id/tv3"
        />
        <TextView
            android:id="@+id/tv3"
            android:layout_width="0dp"
            android:layout_height="50dp"
            android:background="@color/colorPurple"
            android:text="3"
            android:textSize="20sp"
            android:textColor="@color/colorPrimaryDark"
            android:gravity="center"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintLeft_toRightOf="@+id/tv2"
            app:layout_constraintRight_toLeftOf="@+id/tv4"
            />
        <TextView
            android:id="@+id/tv4"
            android:layout_width="0dp"
            android:layout_height="50dp"
            android:background="@color/colorAccent"
            android:text="4"
            android:textSize="20sp"
            android:textColor="@color/colorPrimaryDark"
            android:gravity="center"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintLeft_toRightOf="@+id/tv3"
            app:layout_constraintRight_toRightOf="parent"
            />
    
    </androidx.constraintlayout.widget.ConstraintLayout>
    

    添加Linearlayout元素后的代码

    引用段落 app:layout_constraintHorizontal_weight="2"

    <?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"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity"
        >
    
        <TextView
            android:id="@+id/tv1"
            android:layout_width="0dp"
            android:layout_height="50dp"
            android:background="@color/colorAccent"
            android:text="1"
            android:textSize="20sp"
            android:textColor="@color/colorPrimaryDark"
            android:gravity="center"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toLeftOf="@+id/tv2"
            app:layout_constraintHorizontal_weight="1"
          />
        <TextView
        android:id="@+id/tv2"
        android:layout_width="0dp"
        android:layout_height="50dp"
        android:background="@color/colorBlack"
        android:text="2"
        android:textSize="20sp"
        android:textColor="@color/colorPrimaryDark"
        android:gravity="center"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toRightOf="@+id/tv1"
        app:layout_constraintRight_toLeftOf="@+id/tv3"
        app:layout_constraintHorizontal_weight="1"
        />
        <TextView
            android:id="@+id/tv3"
            android:layout_width="0dp"
            android:layout_height="50dp"
            android:background="@color/colorPurple"
            android:text="3"
            android:textSize="20sp"
            android:textColor="@color/colorPrimaryDark"
            android:gravity="center"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintLeft_toRightOf="@+id/tv2"
            app:layout_constraintRight_toLeftOf="@+id/tv4"
            app:layout_constraintHorizontal_weight="2"
            />
        <TextView
            android:id="@+id/tv4"
            android:layout_width="0dp"
            android:layout_height="50dp"
            android:background="@color/colorAccent"
            android:text="4"
            android:textSize="20sp"
            android:textColor="@color/colorPrimaryDark"
            android:gravity="center"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintLeft_toRightOf="@+id/tv3"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintHorizontal_weight="2"
            />
    
    </androidx.constraintlayout.widget.ConstraintLayout>
    
    • 效果如下


      Screenshot_2020-08-13-17-17-49-491_com.change.the.jpg

    Constantlayout实现百分比布局

    以前我们写圖片的时候能直观感受到适配带来的痛苦,同样的布局,有的手机长有的手机短,造成高度上的不一致,


    20181107181545220.jpg

    拿了可以用constant布局避免他 用到Ratio属性宽高比
    属性很简单,app:layout_constraintDimensionRatio

    下面是示范代码做一个宽高比720:280
    20181108151336773.jpg

    这样就好很多

    相关文章

      网友评论

        本文标题:安卓constantlayout 代替Relativelayou

        本文链接:https://www.haomeiwen.com/subject/bkbbdktx.html