ConstraintLayout分享

综合技术 2018-12-09 阅读原文

控件如何确定自己的位置,最简单的基本操作就是:

layout_constraint[自己位置]_[目标位置]=目标ID

基本布局属性:

layout_constraintLeft_toLeftOf
layout_constraintLeft_toRightOf
layout_constraintRight_toLeftOf
layout_constraintRight_toRightOf
layout_constraintTop_toTopOf
layout_constraintTop_toBottomOf
layout_constraintBottom_toTopOf
layout_constraintBottom_toBottomOf
layout_constraintStart_toEndOf
layout_constraintStart_toStartOf
layout_constraintEnd_toStartOf
layout_constraintEnd_toEndOf

layout_constraintBaseline_toBaselineOf
复制代码

举个例子:

可以看到B在A的右边,我们可以这么写:

<Button android:id="@+id/buttonA" ... />

<Button android:id="@+id/buttonB" ...
    app:layout_constraintLeft_toRightOf="@+id/buttonA" />
复制代码

可以理解B的左边在A的右边,这样B就贴在A的右边了。

我们发现上面还有一个 layout_constraintBaseline_toBaselineOf ,直接看下图就可以理解所有相关的属性:

如果是相对于父布局,我们也可以不写入另外一个控件的id值,直接填parent值就可以了

<android.support.constraint.ConstraintLayout ...>
    <Button android:id="@+id/button" ...
     app:layout_constraintLeft_toLeftOf="parent" />
<android.support.constraint.ConstraintLayout/>
复制代码

Margin相关

当A处于gone的时候,我们可以让B的margin值是根据以下的属性值:

layout_goneMarginStart
layout_goneMarginEnd
layout_goneMarginLeft
layout_goneMarginTop
layout_goneMarginRight
layout_goneMarginBottom
复制代码

水平和垂直方向所占比例

layout_constraintHorizontal_bias
layout_constraintVertical_bias
复制代码
  • 水平居中
<android.support.constraint.ConstraintLayout ...>
    <Button android:id="@+id/button" ...
     app:layout_constraintLeft_toLeftOf="parent"
     app:layout_constraintRight_toRightOf="parent/>
     
<android.support.constraint.ConstraintLayout/>
复制代码
  • 水平方向占比
<android.support.constraint.ConstraintLayout ...>
    <Button android:id="@+id/button" ...
     app:layout_constraintHorizontal_bias="0.3"
     app:layout_constraintLeft_toLeftOf="parent"
     app:layout_constraintRight_toRightOf="parent/>
</android.support.constraint.ConstraintLayout>
复制代码

圆形布局

例如:

<Button android:id="@+id/buttonA" ... />
<Button android:id="@+id/buttonB" ...
  app:layout_constraintCircle="@+id/buttonA"
  app:layout_constraintCircleRadius="100dp"
  app:layout_constraintCircleAngle="45" />
复制代码

尺寸限制

  • 对ConstraintLayout进行限制
android:minWidth设置布局的最小宽度
android:minHeight设置布局的最小高度
android:maxWidth设置布局的最大宽度
android:maxHeight设置布局的最大高度
复制代码
  • 对内部的控件进行限制
// WRAP_CONTENT
app:layout_constrainedWidth ="true|false"
app:layout_constrainedHeight ="true|false"

// MATCH_CONSTRAINT(也就是0dp)
layout_constraintWidth_min和layout_constraintHeight_min:将设置此维度的最小尺寸
layout_constraintWidth_max和layout_constraintHeight_max:将设置此维度的最大尺寸
layout_constraintWidth_percent和layout_constraintHeight_percent:将设置此维度的大小为父级的百分比
复制代码
  • 宽高比
app:layout_constraintDimensionRatio="W|H,1:1"
复制代码

链样式:

layout_constraintHorizontal_chainStyle
layout_constraintVertical_chainStyle
复制代码

其他辅助控件

  • Guideline
  • Barrier
  • Group
  • Placeholder 这些在分享的时候在演示QAQ
稀土掘金

责编内容by:稀土掘金阅读原文】。感谢您的支持!

您可能感兴趣的

Android逆向之旅—Android中分析抖音和火山小视频的数据请求加密协议(IDA动... 一、前言 最近萌发了一个做app的念头,大致什么样的app先暂时不说,后面会详细介绍这个app的开发流程和架构,不过先要解决一些技术前提问题,技术问题就是需要分析解密当前短视频四小龙:抖音,火山,秒拍,快手这四家短视频的数据请求加密...
Picasso-源码解析(二) 前言 前面一篇文章简单的介绍了Picasso的使用,已经整个源码调用的流程,过了一遍。但是其中还有很多的细节我们并没有去涉及到。今天在昨天的基础之上再进行深入。 Picasso对象 前面一篇文章我们是从 Picasso.get...
借助Stetho 在Chrome 上调试Android assetm中的h5代码... 前言 stetho是Facebook推出的安卓APP网络诊断和数据监控的工具,接入方便,功能强大,是开发者必备的好工具 : https://facebook.github.io/stetho/ 主要功能: 当你的应用集成...
Android 自定义View:手把手教你做一款简单、好用的SuperEditText... 前言 Android 开发中, EditText的使用 非常常见 本文将手把手教你做一款 附带一键删除功能 & 自定义样式丰富 的 SuperEditText 控件,希望你们会喜欢。 ...
YCProgress自定义百分比进度条 1.本库优势亮点 2.使用介绍 2.1 圆环百分比进度条 2.2 直线百分比进度条 2.3 仿杀毒类型百分比进度条 3.注意要点 4.效果展示 5.其他介...