ConstraintLayout中的chainstyle & guideline >

ConstraintLayout中的chainstyle & guideline

有时候容易忘记,摘抄记录一下。

参考博客:https://blog.csdn.net/cui130/article/details/89849807

1、chainstyle(链式)

属性 有水平和垂直之分:

  • layout_constraintHorizontal_chainStyle 水平方向
  • layout_constraintVertical_chainStyle 垂直方向

属性值 有三种:

  • spread (默认) 如下:

    • 默认模式如下:

    • 使用weight方式如下:(layout_width=0dp)

      添加属性layout_constraintHorizontal_weight ,同理也有垂直方向的,可以自己尝试

  • spread_inside

  • packed
    • 捆绑在一起居中显示

    • 偏移显示

      添加属性layout_constraintHorizontal_bias

2、guideline(辅助线)

属性 辅助线也有垂直和水平之分,使用属性 orientation 来确定方向

  • horizontal 辅助线为水平方向
  • vertical 辅助线为垂直方向

确定辅助线的位置有三种属性:

  • layout_constraintGuide_begin 水平方向为距离左边的距离;垂直方向为距离上边的距离

    app:layout_constraintGuide_begin="100dp"
  • layout_constraintGuide_end 水平方向为距离右边的距离;垂直方向为距离下边的距离
    app:layout_constraintGuide_percent="0.4"
  • layout_constraintGuide_percent 水平方向为从左向右占比;垂直方向为距离从上到下占比
    app:layout_constraintGuide_end="50dp"

上面举例如下:(垂直方向,水平方向同理)

3、代码如下:

<TextView
          android:id="@+id/weightStart"
          android:layout_width="0dp"
          android:layout_height="30dp"
          android:text="weightStart"
          android:textColor="#ffffff"
          android:background="#83BB96"
          android:gravity="center"
          android:layout_marginTop="10dp"
          app:layout_constraintHorizontal_chainStyle="spread"
          app:layout_constraintHorizontal_weight="1"
          app:layout_constraintStart_toStartOf="parent"
          app:layout_constraintEnd_toStartOf="@id/weightCenter"
          app:layout_constraintTop_toTopOf="parent"/>

<TextView
          android:id="@+id/weightCenter"
          android:layout_width="0dp"
          android:layout_height="30dp"
          android:text="weightCenter"
          android:textColor="#ffffff"
          android:background="#567B63"
          android:gravity="center"
          app:layout_constraintHorizontal_weight="2"
          app:layout_constraintTop_toTopOf="@+id/weightStart"
          app:layout_constraintStart_toEndOf="@+id/weightStart"
          app:layout_constraintEnd_toStartOf="@+id/weightEnd"/>

<TextView
          android:id="@+id/weightEnd"
          android:layout_width="0dp"
          android:layout_height="30dp"
          android:text="weightEnd"
          android:textColor="#ffffff"
          android:background="#669999"
          android:gravity="center"
          app:layout_constraintHorizontal_weight="3"
          app:layout_constraintTop_toTopOf="@+id/weightStart"
          app:layout_constraintStart_toEndOf="@id/weightCenter"
          app:layout_constraintEnd_toEndOf="parent"/>

<TextView
          android:id="@+id/insideStart"
          android:layout_width="wrap_content"
          android:layout_height="30dp"
          android:text="insideStart"
          android:textColor="#ffffff"
          android:background="#83BB96"
          android:gravity="center"
          android:layout_marginTop="10dp"
          app:layout_constraintHorizontal_chainStyle="spread_inside"
          app:layout_constraintStart_toStartOf="parent"
          app:layout_constraintEnd_toStartOf="@id/insideCenter"
          app:layout_constraintTop_toBottomOf="@+id/weightStart"/>

<TextView
          android:id="@+id/insideCenter"
          android:layout_width="wrap_content"
          android:layout_height="30dp"
          android:text="insideCenter"
          android:textColor="#ffffff"
          android:background="#567B63"
          android:gravity="center"
          app:layout_constraintTop_toTopOf="@+id/insideStart"
          app:layout_constraintStart_toEndOf="@+id/insideStart"
          app:layout_constraintEnd_toStartOf="@+id/insideEnd"/>

<TextView
          android:id="@+id/insideEnd"
          android:layout_width="wrap_content"
          android:layout_height="30dp"
          android:text="insideEnd"
          android:textColor="#ffffff"
          android:background="#669999"
          android:gravity="center"
          app:layout_constraintTop_toTopOf="@+id/insideStart"
          app:layout_constraintStart_toEndOf="@id/insideCenter"
          app:layout_constraintEnd_toEndOf="parent"/>

<TextView
          android:id="@+id/PackedStart"
          android:layout_width="wrap_content"
          android:layout_height="30dp"
          android:text="PackedStart"
          android:textColor="#ffffff"
          android:background="#83BB96"
          android:gravity="center"
          android:layout_marginTop="10dp"
          app:layout_constraintHorizontal_chainStyle="packed"
          app:layout_constraintStart_toStartOf="parent"
          app:layout_constraintEnd_toStartOf="@id/PackedCenter"
          app:layout_constraintTop_toBottomOf="@+id/insideStart"/>

<TextView
          android:id="@+id/PackedCenter"
          android:layout_width="wrap_content"
          android:layout_height="30dp"
          android:text="PackedCenter"
          android:textColor="#ffffff"
          android:background="#567B63"
          android:gravity="center"
          app:layout_constraintTop_toTopOf="@+id/PackedStart"
          app:layout_constraintStart_toEndOf="@+id/PackedStart"
          app:layout_constraintEnd_toStartOf="@+id/PackedEnd"/>

<TextView
          android:id="@+id/PackedEnd"
          android:layout_width="wrap_content"
          android:layout_height="30dp"
          android:text="PackedEnd"
          android:textColor="#ffffff"
          android:background="#669999"
          android:gravity="center"
          app:layout_constraintTop_toTopOf="@+id/PackedStart"
          app:layout_constraintEnd_toEndOf="parent"
          app:layout_constraintStart_toEndOf="@+id/PackedCenter"/>

<TextView
          android:id="@+id/PackBiasStart"
          android:layout_width="wrap_content"
          android:layout_height="30dp"
          android:layout_marginTop="8dp"
          android:background="#83BB96"
          android:gravity="center"
          android:text="PackBiasStart"
          android:textColor="#ffffff"
          app:layout_constraintHorizontal_chainStyle="packed"
          app:layout_constraintHorizontal_bias="0.2"
          app:layout_constraintStart_toStartOf="parent"
          app:layout_constraintEnd_toStartOf="@id/PackBiasCenter"
          app:layout_constraintTop_toBottomOf="@+id/PackedStart" />

<TextView
          android:id="@+id/PackBiasCenter"
          android:layout_width="wrap_content"
          android:layout_height="30dp"
          android:text="PackBiasCenter"
          android:textColor="#ffffff"
          android:background="#567B63"
          android:gravity="center"
          app:layout_constraintTop_toTopOf="@+id/PackBiasStart"
          app:layout_constraintStart_toEndOf="@+id/PackBiasStart"
          app:layout_constraintEnd_toStartOf="@+id/PackBiasEnd"/>

<TextView
          android:id="@+id/PackBiasEnd"
          android:layout_width="wrap_content"
          android:layout_height="30dp"
          android:text="PackBiasEnd"
          android:textColor="#ffffff"
          android:background="#669999"
          android:gravity="center"
          app:layout_constraintTop_toTopOf="@+id/PackBiasStart"
          app:layout_constraintStart_toEndOf="@id/PackBiasCenter"
          app:layout_constraintEnd_toEndOf="parent"/>

<TextView
          android:id="@+id/SpredStart"
          android:layout_width="wrap_content"
          android:layout_height="30dp"
          android:text="SpredStart"
          android:textColor="#ffffff"
          android:background="#83BB96"
          android:gravity="center"
          android:layout_marginTop="10dp"
          app:layout_constraintHorizontal_chainStyle="spread"
          app:layout_constraintStart_toStartOf="parent"
          app:layout_constraintEnd_toStartOf="@id/SpredCenter"
          app:layout_constraintTop_toBottomOf="@+id/PackBiasStart"/>

<TextView
          android:id="@+id/SpredCenter"
          android:layout_width="wrap_content"
          android:layout_height="30dp"
          android:text="SpredCenter"
          android:textColor="#ffffff"
          android:background="#567B63"
          android:gravity="center"
          app:layout_constraintTop_toTopOf="@+id/SpredStart"
          app:layout_constraintStart_toEndOf="@+id/SpredStart"
          app:layout_constraintEnd_toStartOf="@+id/SpredEnd"/>

<TextView
          android:id="@+id/SpredEnd"
          android:layout_width="wrap_content"
          android:layout_height="30dp"
          android:text="SpredEnd"
          android:textColor="#ffffff"
          android:background="#669999"
          android:gravity="center"
          app:layout_constraintTop_toTopOf="@+id/SpredStart"
          app:layout_constraintStart_toEndOf="@id/SpredCenter"
          app:layout_constraintEnd_toEndOf="parent"/>

<androidx.constraintlayout.widget.Guideline
           android:id="@+id/guideline1"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
           android:orientation="vertical"
       app:layout_constraintGuide_begin="100dp"/>

<TextView
          android:id="@+id/guide1"
          android:layout_width="wrap_content"
          android:layout_height="30dp"
          android:text="SpredEnd"
          android:textColor="#ffffff"
          android:background="#669999"
          android:gravity="center"
          app:layout_constraintEnd_toStartOf="@+id/guideline1"
          app:layout_constraintBottom_toBottomOf="parent"/>

<androidx.constraintlayout.widget.Guideline
        android:id="@+id/guideline2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
        android:orientation="vertical"
        app:layout_constraintGuide_end="50dp"/>

<TextView
          android:id="@+id/guide2"
          android:layout_width="wrap_content"
          android:layout_height="30dp"
          android:text="SpredEnd"
          android:textColor="#ffffff"
          android:background="#669999"
          android:gravity="center"
          app:layout_constraintEnd_toStartOf="@+id/guideline2"
          app:layout_constraintBottom_toBottomOf="parent"/>

<androidx.constraintlayout.widget.Guideline
        android:id="@+id/guideline3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        app:layout_constraintGuide_percent="0.6"/>

<TextView
          android:id="@+id/guide3"
          android:layout_width="wrap_content"
          android:layout_height="30dp"
          android:text="SpredEnd"
          android:textColor="#ffffff"
          android:background="#669999"
          android:gravity="center"
          app:layout_constraintEnd_toStartOf="@+id/guideline3"
          app:layout_constraintBottom_toBottomOf="parent"/>

原文地址:https://www.cnblogs.com/wisdomzhang/p/12309267.html

时间: 2024-11-05 15:00:05

ConstraintLayout中的chainstyle & guideline >的相关文章

ConstraintLayout中Chains和Guideline的使用

前面介绍了如何使用ConstraintLayout,在用ConstraintLayout的时候千万要运行一下,在手机上看看结果,因为有时候在AS上面看是没问题的,但是运行到手机上面还是会又不一样的效果的.然后本文将来介绍ConstraintLayout中的Chain也就是链条,还有ConstraintLayout辅助线Guideline的使用. Chains 链条是什么?简单说就是一条链将同一轴(水平或者垂直)上面给连接起来,使他们能够统一行动. 在了解链条之前,我们来写一个栗子,来见识下链条的

转:Android新特性介绍,ConstraintLayout完全解析

转:http://blog.csdn.net/guolin_blog/article/details/53122387 本篇文章的主题是ConstraintLayout.其实ConstraintLayout是Android Studio 2.2中主要的新增功能之一,也是Google在去年的I/O大会上重点宣传的一个功能.我们都知道,在传统的android开发当中,界面基本都是靠编写XML代码完成的,虽然Android Studio也支持可视化的方式来编写界面,但是操作起来并不方便,我也一直都不推

约束布局ConstraintLayout加快布局速度

Android Studio2.2更新布局设计器,同时,引人了约束布局ConstraintLayout. 简单来说,可以把它看做是相对布局的升级版本,但是区别与相对布局更加强调约束.何为约束,即控件之间的关系. 它能让你的布局更加扁平化,一般来说一个界面一层就够了:同时借助于AS我们能极其简单的完成界面布局. ConstraintLayout简介? ConstraintLayout的优点非常突出. ConstraintLayout不需要使用嵌套布局就可以让我们去构建一个大而复杂的布局, 他与Re

Android新特性介绍,ConstraintLayout完全解析

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/53122387 今天给大家带来2017年的第一篇文章,这里先祝大家新年好. 本篇文章的主题是ConstraintLayout.其实ConstraintLayout是Android Studio 2.2中主要的新增功能之一,也是Google在去年的I/O大会上重点宣传的一个功能.我们都知道,在传统的Android开发当中,界面基本都是靠编写XML代码完成的,虽然Android Stu

Android studio 2.2新特性介绍,ConstraintLayout完全解析

转载郭霖大神的文章,转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/53122387 我正常写随笔,都是看了别人的文章,自己使用,把自己的体验心得,或者使用方法写下来,但是这个ConstraintLayout个人感觉是一个熟能生巧的事情,每太复杂的东西,拖动生成Ui,再也不用去写UI界面复杂的xml文件了, 谷歌用一个可视化的界面帮你完成复杂的xml文件处理,好处是都是用约束来完成的,完美的解决了布局多层嵌套的问题,UI层嵌套越多

动态图解&amp;实例 ConstraintLayout Chain

概述 昨儿写了一篇全文字和JPG.无Gif的博文ConstraintLayout 属性详解 和Chain的使用, 主要详解了ConstraintLayout的所有属性, 但是有朋友问Chain是如何通过可视化的方式去添加, 于是便有了此文. 但是只讲解Chain又显得太单薄, 于是我又加入了一个用ConstraintLayout实现商品详情.Item布局的实例. 废话少说,开整: 构建链条 Chain 图文步骤 假设我们要需要构建 竖直的链条. 第一步,先拖三个Button竖直排列. 可以看到在

再学一次ConstraintLayout 一些新特性

平时使用ConstraintLayout,断断续续的,基本都是在自己的小demo里面使用.公司的项目暂时还没有使用.这次公司项目需要大改,我决定用上这个nice的布局.减少嵌套(之前的老代码,实在是嵌套得太深了....无力吐槽). 首先,ConstraintLayout是一个新的布局,它是直接继承自ViewGroup的,所以在兼容性方面是非常好的.官方称可以兼容到API 9.可以放心食用. 一.Relative positioning 先来看看下面一段简单示例: <android.support

导入项目的时候报错Error:Could not find com.android.support.constraint:constraint-layout:1.0.0-alpha7

问题描述 今天在导入项目的时候报错: Error:Could not find com.android.support.constraint:constraint-layout:1.0.0-alpha7. 原因是:没有下载相应版本的ConstraintLayout. 解决方案 工具栏上选择 Tools --> Android -->SDK Manager 切换到SDK Tools选项,在右下角处勾选 Show Package Details 在Support Repository下的Const

依赖ConstraintLayout报错,Could not find *****,Failed to resolve:*****

ConstraintLayout 约束布局,AndroidStudio2.2中新增功能之一,可以先去看看这篇文章 Android新特性介绍,ConstraintLayout完全解析,2.3版本的AndroidStudio支持在约束布局中使用 Chains(链接) 和 Ratio(比例) . 使用ConstraintLayout可以在gradle中添加依赖. compile 'com.android.support.constraint:constraint-layout:1.0.0-beta5'