首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

详解Android ConstraintLayout 约束布局用法

前言 在2016年Google I/O大会上 , Google 发布了Android Studio 2.2预览版,同时也发布了Android布局方案 ConstraintLayout , 但是最近一年也没有大规模使用...2017年Google发布了 Android Studio 2.3 正式版,在 Android Studio 2.3 版本中新建Module默认布局就是 ConstraintLayout 。...ConstraintLayout则是使用约束方式来指定各个控件位置和关系,它有点类似于 RelativeLayout,但远比RelativeLayout要更强大。...layout_constraintHorizontal_bias //控件水平偏移比例 layout_constraintVertical_bias //控件垂直偏移比例 如果在布局文件没有明确写出偏移比例...基线约束控键 该控键帮助你对齐任意两个widget文字部分,与widget大小无关。例如你有两个不同尺寸widget但是你想要他们文字部分对齐。

3.8K20
您找到你想要的搜索结果了吗?
是的
没有找到

Android 约束布局ConstraintLayout1.1.0 版详解

/这篇文章,我们对 ConstraintLayout 1.0.2 版进行了详细了解。...Margins and chains 在 1.1.0-beta4 版本(已知),为链控件设置 marginRight/End 是无效(个人感觉这应该是个 Bug)。...可设置值有: none:不应用优化。 standard:仅优化直接约束和屏障约束(默认)。 direct:优化直接约束。 barrier:优化屏障约束。 chain:优化链约束(实验)。...在设置值时,可以设置多个,如: app:layout_optimizationLevel="direct|barrier|dimensions" Barrier 当我们在布局时,有时候就会遇到布局会随着数据多少而改变大小情况...这是个非常好用东东,和 GuideLine 一样,它是一个虚拟 View,对界面是不可见。目的就是辅助布局

1.1K40

约束布局】ConstraintLayout 约束布局 ( 简介 | 引入依赖 | 基本操作 | 垂直定位约束 | 角度定位约束 | 基线约束 )

进行可以进行可视化操作 ; 3.与其它布局比较 : ① 相同点 : ConstraintLayout 与 其它布局 都是 ViewGroup 子类 , 其 拥有基本布局公用属性 ; ② 不同点...更加灵活 , 并且 ConstraintLayout 能在 Android Studio 布局编辑器中进行编辑 ; 5.可视化操作 : 在 布局编辑器 工具 , 可以设置所有的属性 , 该 布局编辑器...约束 简介 ( 1 ) 约束个数要求 ConstraintLayout 布局 单个组件 约束个数要求 : 1.约束要求 : 在 ConstraintLayout 设置 View 位置 , 至少为...因为 C 组件没有垂直方向约束 ; 4.约束错误信息 : 尽管 组件 缺少一个约束 , 不会引起编译错误 , 但是 布局编辑器 会在工具栏 显示 “missing constraints...角度 定位 约束 ( 1 ) 角度定位 约束 角度定位 : 1.简介 : 约束布局 角度定位 , 同过 设置 一个 角度 和 一个 距离 , 来确定 两个控件相对位置 ; 2.需要设置属性

4.1K41

ConstraintLayout(约束布局)使用

概述 ConstraintLayout(约束布局)出现是为了在Android应用布局中保持扁平层次结构,减少布局嵌套,为应用创建响应快速而灵敏界面。...Bias 在ConstraintLayout没有直接属性让一个控件水平居中,或者竖直居中,可以使用如下方式: ?...) 如果一个View尺寸被设置为wrap_content,那么当View内容太多时,可能会超出约束规定范围,约束布局提供了两个属性来限制View尺寸: layout_constrainedWidth...设置Guidline方向: android:orientation="horizontal":高度0dp,宽度与父容器等宽 android:orientation="vertical":宽度0dp,高度与父容器等高...tools:parentTag:设为ConstraintLayout,使得编辑器将当前merge标签当做约束布局来预览。 content:是要填入这个占位符Viewid。 引用模板: ?

2.2K30

约束布局】ConstraintSet 约束集 ( 简介 | 约束属性集合 | 约束集初始化 | 约束集应用到布局 | 关键帧动画 | TransitionManager 使用 )

约束属性集合 , 其表示 约束布局 ( ConstraintLayout ) 所有的组件 约束条件 , 尺寸 , 边距 , 等 约束属性 ; ② 约束集 ConstraintSet 封装内容...: 约束集中封装了 每个组件 所有 约束布局 属性 ; ③ 约束集应用效果 : 约束布局 ( ConstraintLayout ) 应用 约束集 ( ConstraintSet ) 时 , 约束布局所有组件都会按照约束集中约束属性进行重新布局绘制...获取约束集 : 从 约束布局 ( ConstraintLayout ) , 可以获取 约束集 ( ConstraintSet ) , 约束集可以从当前现有组件获取 , 也可以从布局文件获取 ,...下面代码是从布局文件获取 ; //1 ....约束集中约束属性 : R.layout.constraintlayout 布局就是如下代码 , 从下面的布局获取 约束集 ConstraintSet , 该约束集中封装了 button1 , button2

3.1K10

Android LayoutInflater(布局服务)

本节引言: 本节继续带来Android系统服务LayoutInflater(布局服务),说到布局,大家第一时间 可能想起是写完一个布局xml,然后调用ActivitysetContentView...()加载布局,然后把他显示 到屏幕上是吧~其实这个底层走还是这个LayoutInflater,用Android内置Pull解析器来解析 布局。...一般在Android动态加载布局或者添加控件用得较多,本节我们就来学习下他在实际开发 一些用法~ 1.LayoutInflater相关介绍 1)Layout是什么鬼?...又或者设置margin等等,这个由你决定~ 2.纯Java代码加载布局 我们早已习惯了使用XML生成我们需要布局,但是在一些特定情况下,我们 需要使用Java代码往我们布局动态添加组件或者布局...LayoutInflater(布局服务),以及动态加载View和控件 相关东西,相信对初学控件朋友带来帮助~好,就说这么多,谢谢

79510

Android开发笔记(一百四十九)约束布局ConstraintLayout

约束布局ConstraintLayout是Android Studio 2.2推出布局,并从Android Studio 2.3开始成为默认布局文件布局,...由此可见Android官方对其寄予厚望,那么约束布局究竟具备哪些激动人心特性呢?...开发者使用约束布局之时,有多种手段往该布局内添加和拖动控件,既能像原型设计软件AxureRP那样在画板上任意拖曳控件,也能像传统布局那样在XML文件调整控件布局,还能在代码动态修改控件对象位置状态...在XML文件调整控件布局 传统布局如线性布局、相对布局基本是在XML文件手工添加控件节点,约束布局当然也允许在布局文件中指定控件相对位置,这跟相对布局内部控件位置调整类似,只不过用来表示位置属性换了个名字罢了...在代码添加控件 若要利用代码给约束布局动态添加控件,则可照常调用addView方法,不同之处在于,新控件布局参数必须使用约束布局布局参数,即ConstraintLayout.LayoutParams

2K20

Constraintlayout约束布局三问

Constraintlayout——约束布局,作为Jetpack一个组件推出。今天面试三问就是关于布局: 说说constraintlayout主要特性,为什么会设计出这一种布局?...ConstraintLayout名字叫约束布局,跟RelativeLayout相对布局有点像,主要使用约束方式来指定各个控件位置和关系,但是又远远比RelativeLayout强大。...="parent" android:layout_width="match_parent" android:layout_width="0dp" 在父布局按比例显示 app:layout_constraintHorizontal_bias...="0.3" 通过该属性可以设置在父布局显示位置,按比例显示,比如0.3就代表在3/10位置。...> 如果一个布局里面的子布局依次设置了位置约束,也就是左侧连着A,A连着B,B连着C,C连着右侧,那么由于各个面的拉力,这几个布局就会平均分布于子布局 分布子布局类型 如上一节说,如果默认情况,三个子布局就会平局分布

1.6K10

约束布局】ConstraintLayout 屏幕适配案例 ( 使用代码生成约束布局控件属性 )

文章目录 一、ConstraintLayout 屏幕适配案例 二、使用代码生成约束布局 一、ConstraintLayout 屏幕适配案例 ---- ConstraintLayout 屏幕适配案例 :...: 二、使用代码生成约束布局 ---- public class BoundaryCaculate { public static void main(String[] args) {..., 就是 750, 1334 // 计算流程 : // ① bias 宽度计算 : 计算出总 bias 总长度 = width_inner - 控件长度 , 左侧值 / 总长度 = 水平方向...// bias 值 // ② bias 高度计算 : 计算出总 bias 总高度 = height_inner - 控件高度 , 顶部值 / 总高度 = // 垂直方向 bias 值...:scaleType=\"fitXY\"\n" + "android:src=\"@mipmap/actual_\"\n"); } } } 输出结果 : 可以直接作为约束布局组件属性。

40720

约束布局】使用 Design 模式编辑 ConstraintLayout 约束布局 ( 添加 Guideline 引导线 | 添加 FragmentContainerView )

文章目录 一、使用 Design 模式编辑 ConstraintLayout 约束布局 1、添加 Guideline 引导线 2、添加 Fragment1 3、添加 Fragment2 一、使用 Design...模式编辑 ConstraintLayout 约束布局 ---- 向约束布局 ConstraintLayout 添加两个 Fragment , 垂直方向各占 50 % , 一个在屏幕上半部分 , 一个占据屏幕下半部分...; 1、添加 Guideline 引导线 向 约束布局 添加一条 Guideline 引导线 , 点击 布局 Guidelines 按钮 , 在弹出 下拉菜单 , 选择 Horizontal...Guideline 水平引导线 , 此时在下方界面 , 就会出现一条 Guideline 引导线 , 默认显示单位是 像素 , 双击左侧三角按钮 , 就可以切换 像素值 / 百分比 显示...要想向 约束布局 添加 Fragment , 首先要创建 Fragment 类 , 这里创建两个 Fragment 类 : Fragment1 : package kim.hsl.livedatademo

1K10

Android开发RelativeLayout相对布局

Android开发RelativeLayout相对布局         RelativeLayout布局Android界面布局应用最广也最强大一种布局,其不仅十分灵活,可以解决开发各种界面布局需求...在iOS开发,Autolayout技术总是被赞不绝口,RelativeLayout布局就是Andriod系统Autolayout,其又被称为相对布局。        ...所谓相对布局,是指其坐标的确定并不是开发者写死,而是有系统自动计算出来,那么系统如何计算每个视图控件位置呢?...RelativeLayout布局中视图位置配置主要使用其内部类LayoutParams,这个内部类LayoutParams是继承自MarginLayoutParams。...void addRule(int verb, int anchor) //移除一个布局规则 public void removeRule(int verb) 用于进行布局规则配置参数如下: /*=

1.1K20

Android开发TableLayout表格布局

Android开发TableLayout表格布局 一、引言         在移动端应用程序开发,常常会使用到表格布局,iOS和Android开发框架中都提供了独立表格视图控件供开发者使用,例如...iOSUITableView、UICollectionView,AndroidListView、GridView等。...除了独立视图控件外,Android还提供了一个布局容器类TableLayout,使用其也可以进行方便表格布局。        ...,其中每个视图元素作为当前行一列,结合使用TableLayout与TableRow,就实现了行列表格布局。...二、关于TableRow         TableRow可以简单理解为TableLayout布局一行,当然,TableLayout也可以直接添加任意View视图,但是默认添加View视图将独占一行

1.6K30

智能设计之NDN:基于约束布局生成

该论文也是GNN(图神经网络)在视觉探索,作者提出基于用户指定约束条件布局生成方法:神经设计网络(NDN)。NDN由三个模块组成: ? 上图是关键技术架构。...使用方向图(directional graph)作为表示组件(上图Design Components)及约束条件(上图Specified Constraints)特征。...- 模块 bounding box prediction 预测布局,预测表示为矩形组件(bounding boxes)组成布局图 - 模块 refinement 微调布局,此步可以加入一些美学规则。...最后,定量和定性实验表明,生成布局在视觉上与实际设计布局相似。 ? 上图可见:添加约束与无约束差别 ?...自动布局效果 另外,补充下作者所使用数据: - Magazine数据集 4千张设计图,有6类组件 (texts, images, headlines, over-image texts, over-image

1.2K30

这个断点可以帮你检查布局约束

前言:     在现在iOS布局,估计有很多很多开发者会使用到 Masonry 或者用到 SDAutoLayout 或者Storyboard或者还有Xib等等,前面两个三方的确是方便了我们布局,但你写完之后难免可能布局约束支架会有一些冲突或者会有约束警告出现...,比如那个约束要突破那个约束警告等等。...在这里就分享一下写完布局之后自己对布局约束算是一种检查方法吧。    ...image.png 通过上面的这些打印,这个完整界面结构和地址也就全都打印出来了,接下来你在仔细看看下面的这张约束问题打印图上面是有约束有问题控件地址而上面的界面层级打印每一个控件地址也是打印出来...就是上图中这个Label,然后你通过上面打印出来层级和这个Label赋值,你给这个Label赋text是一个很好帮助,你就可以精确找到是哪一个控件约束有问题:通过这样我找到这个控件,检查它约束

1.1K90

Android开发-Listview显示不同视图布局

使用场景 在重写ListViewBaseAdapter时,我们常常在getView()方法复用convertView,以提高性能。...convertView在Item为单一同种类型布局时,能够回收并重用,但是多个Item布局类型不同时,convertView回收和重用会出现问题。...比如有些行为纯文本,有些行则是图文混排,这里纯文本行为一类布局,图文混排行为第二类布局。单一类型ListView很简单,下面着重介绍一下ListView包含多种类型视图布局情形。...2.ListView包含不同Item布局 我们需要做这些工作:   1)重写 getViewTypeCount() – 该方法返回多少个不同布局   2)重写 getItemViewType...(int) – 根据position返回相应Item   3)根据view item类型,在getView创建正确convertView 3.案例 import java.util.ArrayList

2.2K30
领券