美文网首页
366,关于ConstraintLayout的部分属性总结(设置

366,关于ConstraintLayout的部分属性总结(设置

作者: 枫叶1234 | 来源:发表于2020-12-05 07:18 被阅读0次

    为什么会出现ConstraintLayout呢?

    截屏2020-12-03 下午8.37.25.png
    • layout_constraintLeft_toLeftOf :当前View的右侧和另一个View的右侧位置对齐,与RelativeLayout的alignLeft属性相似
    • ***layout_constraintLeft_toRightOf ***:当前view的左侧会在另一个View的右侧位置 与RelativeLayout的toRightOf属性相似
    • layout_constraintRight_toLeftOf :当前view的右侧会在另一个View的左侧位置 与RelativeLayout的toLeftOf属性相似
    • layout_constraintRight_toRightOf :当前View的右侧和另一个View的右侧位置对其,与RelativeLayout的alignRight属性相似
    • layout_constraintTop_toTopOf :头部对齐,与alignTop相似
    • layout_constraintTop_toBottomOf :当前View在另一个View的下侧 与below相似
    • layout_constraintBottom_toTopOf :当前View在另一个View的上方 与above相似
    • layout_constraintBottom_toBottomOf :底部对齐,与alignBottom属性相似
    • layout_constraintBaseline_toBaselineOf :文字底部对齐,与alignBaseLine属性相似
    • layout_constraintStart_toEndOf :同left_toRightOf
    • layout_constraintStart_toStartOf :同left_toLeftOf
    • layout_constraintEnd_toStartOf :同right_toLeftOf
    • layout_constraintEnd_toEndOf :同right_toRightOf

    layout_constraintBaseline_toBaselineOf 指的是文本基线

    截屏2020-12-05 上午8.07.19.png

    三、Margins属性:同RelativeLayout属性

    • android:layout_marginStart
    • android:layout_marginEnd
    • android:layout_marginLeft
    • android:layout_marginTop
    • android:layout_marginRight
    • android:layout_marginBottom

    四、Margins when connected to a Gone widget
    当前View与另一个View绑定后,另一个View的属性设置为了Gone,则以下属性会生效

    • layout_goneMarginStart
    • layout_goneMarginEnd
    • layout_goneMarginLeft
    • layout_goneMarginTop
    • layout_goneMarginRight
    • layout_goneMarginBottom
    截屏2020-12-03 上午9.38.37.png

    五、center position and bias
    居中并设置权重,使view居中并且设置权重,同RelativeLayout的center_horizontal/vertical=“true”
    设置方法:以横向居中为例: 将ConstraintLayout的子View的属性如下进行设置

    <TextView android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Hello,World" 
    app:layout_constraintLeft_toLeftOf="parent" 
    app:layout_constraintRight_toRightOf="parent" 
    app:layout_constraintTop_toTopOf="parent" />
    

    将宽度设置为wrap_content并设置两个属性:

    app:layout_constraintLeft_toLeftOf="parent" 
    app:layout_constraintRight_toRightOf="parent"
    

    即可将该View横向居中显示。(竖向同理)。

    利用bias设置权重: 设置居中之后默认的权重的为0.5。即正中央显示,效果如图

    image.png

    app:layout_constraintHorizontal_bias="0.3"
    可以通过设置app:layout_constraintHorizontal_bias属性进行位置的调整,表示距离左侧(因为是横向,纵向则是距离顶部)30%的的距离。

    如图:


    截屏2020-12-05 上午7.53.39.png
    六、Dimension constraints

    android:minWidth set the minimum width for the layout
    android:minHeight set the minimum height for the layout

    当子View的宽/高设置为wrap_content时,会用到minWidth和minHeight这两个属性

    七、Widget dimension constraints
    • 使用一个具体的值 Using a specific dimension (either a literal value such as 123dp or a Dimension reference)
    • 使用wrap_content让控件自己来计算大小 Using WRAP_CONTENT, which will ask the widget to compute its own size
    • 用0dp来指定,意思就是Match_Constraint Using 0dp, which is the equivalent of “MATCH_CONSTRAINT”

    注意:
    ConstraintLayout 不支持match_parent属性,但支持wrap_content属性。如果你需要用match_parent,将宽度/高度指定为0dp,然后设置left_toleft,right_toRight为parent即可实现横向充满,同理设置竖向的

    八、Ratio比例大小属性

    当你的父控件为ConstraintLayout,可以利用这个属性来控制当前View的宽高比。在利用这个属性时,你必须指明一个方向上的大小为0dp,另一个方向可指定为明确的dp值也可以使用wrap_content这样才能够按照比例来为你摆放

    <ImageView android:layout_width="100dp" 
    android:layout_height="0dp" 
    android:src="@mipmap/ic_launcher" 
    app:layout_constraintDimensionRatio="1:4" 
    app:layout_constraintLeft_toLeftOf="parent" 
    app:layout_constraintTop_toTopOf="parent" />
    

    通过指定 app:layout_constraintDimensionRatio="1:1" 属性来指定控件宽高的比,默认为宽:高

    你也可以通过下面的方法进行设置:

    <ImageView android:layout_width="0dp" 
    android:layout_height="0dp" 
    android:src="@mipmap/ic_launcher" 
    app:layout_constraintBottom_toBottomOf="parent" 
    app:layout_constraintDimensionRatio="H,3:1" 
    app:layout_constraintTop_toTopOf="parent" />
    

    上面的这种情况将宽和高均指定为了0dp,但是通过top_toTopOf bottom_toBottomOf 两个属性指定了在高度上的大小。另外通过在ratio属性中指明的H,是为了告诉ConstraintLayout已经指定了高度上的大小。而并非是指定比例为高:宽

    你也可以通过下面的方法进行设置:

    <ImageView android:layout_width="0dp" 
    android:layout_height="0dp" 
    android:src="@mipmap/ic_launcher" 
    app:layout_constraintBottom_toBottomOf="parent" 
    app:layout_constraintDimensionRatio="H,3:1" 
    app:layout_constraintTop_toTopOf="parent" />
    

    上面的这种情况将宽和高均指定为了0dp,但是通过top_toTopOf bottom_toBottomOf 两个属性指定了在高度上的大小。另外通过在ratio属性中指明的H,是为了告诉ConstraintLayout已经指定了高度上的大小。而并非是指定比例为高:宽

    截屏2020-12-03 上午9.38.37.png

    权重链

    截屏2020-12-05 上午7.59.08.png

    链条样式

    截屏2020-12-05 上午8.03.33.png

    相关文章

      网友评论

          本文标题:366,关于ConstraintLayout的部分属性总结(设置

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