当前位置: 首页 > news >正文

Android开发 - 掌握ConstraintLayout(四)创建基本约束

上一篇我们介绍了编辑器的基本使用,本文我们介绍创建基本的约束。

"约束"表示View之间的位置关系。当我们在ConstraintLayout布局中创建View时,如果我们没有添加任何约束,虽然在设计视图我们可以拖动它们到任意位置,但是运行后都会在左上角的原点位置,同时代码中也会给出警告:

-w589

所以我们必须确保我们的View都被添加了适当的约束。
我们常用的约束通常有两种,一种是相对父View的约束,一种是相对其它View的约束。

相对父布局的约束

创建相对布局的约束时比较简单,将对象方位的锚点拖动到对应方位的布局上即可。

-w590

这里我将这个按钮放到左上角,距父布局的左方和上方为50dp,在红色方框处可以调整具体的数值。

相对其它布局的约束

创建相对其它View的布局的形式就比较多样化了,结合相对父布局的约束,可以实现出非常复杂的界面。

当创建一个相对其它View的约束时,将锚点拖动到其它View上面的锚点即可。

-w606

创建父View约束时将锚点拖到父View边缘即可,创建与其它View约束时是将锚点拖到其它View的锚点上。

我们来举个应用的例子:

比如我们想要一个View相对另一个View居中显示,使用ConstraintLayout来实现就非常简单:

-w288

我们只需要将一个View(上图中的TextView)的左边锚点拖到目标View(上图中的Button)的左侧锚点,右边的锚点拖动到目标View的右侧锚点即可以实现。

总结

以前使用传统布局时基本上不愿意使用设计视图,布局时也基本上靠码代码。但是使用了ConstraintLayout后反而很少使用代码视图了,因为只需拖拖拽拽就可创建约束,实现复杂的布局,效率也相应地大大提升了。
下一篇:Android开发 - 使用ConstraintLayout(五)偏差(Bias)我们介绍偏差(Bias)的使用。

本文地址,如有更多疑问,请参考我的其它Android相关博客:我的博客地址

相关文章:

  • Python爬取新浪微博用户信息及微博内容
  • IIS7应用程序池集成和经典的区别
  • Es学习第二课, ES安装和客户端使用
  • EOS源码解析 eosio账号默认合约
  • 项目总结11:Centos部署JDK+Tomcat+MySQL文档(阿里云-网易云-华为云)
  • Oracle Procedure模板
  • 扫呗扫码点餐,如何在扫呗后台给这个商户配一下支付授权地址
  • 外网访问内网Resin
  • Jquery添加元素(append,prepend,after,before四种方法区别对比)
  • 面向对象类的解析
  • 关于Android全面屏虚拟导航栏的适配总结
  • 89元尝鲜智能家居 天猫精灵方糖智联3件套简评
  • Redis命令——哈希(Hash)
  • Material Design 设计规范总结(1)
  • Git内部原理之Git引用
  • 30秒的PHP代码片段(1)数组 - Array
  • codis proxy处理流程
  • Fabric架构演变之路
  • gitlab-ci配置详解(一)
  • golang 发送GET和POST示例
  • iOS | NSProxy
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • javascript 总结(常用工具类的封装)
  • JavaWeb(学习笔记二)
  • miaov-React 最佳入门
  • Python语法速览与机器学习开发环境搭建
  • WordPress 获取当前文章下的所有附件/获取指定ID文章的附件(图片、文件、视频)...
  • 给新手的新浪微博 SDK 集成教程【一】
  • 记一次删除Git记录中的大文件的过程
  • 问:在指定的JSON数据中(最外层是数组)根据指定条件拿到匹配到的结果
  • 移动互联网+智能运营体系搭建=你家有金矿啊!
  • 再次简单明了总结flex布局,一看就懂...
  • Android开发者必备:推荐一款助力开发的开源APP
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • ​2020 年大前端技术趋势解读
  • #include到底该写在哪
  • ${ }的特别功能
  • (11)工业界推荐系统-小红书推荐场景及内部实践【粗排三塔模型】
  • (13)Hive调优——动态分区导致的小文件问题
  • (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (html转换)StringEscapeUtils类的转义与反转义方法
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (数位dp) 算法竞赛入门到进阶 书本题集
  • (图)IntelliTrace Tools 跟踪云端程序
  • (原創) 如何刪除Windows Live Writer留在本機的文章? (Web) (Windows Live Writer)
  • (转)JVM内存分配 -Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m
  • .bat批处理(十一):替换字符串中包含百分号%的子串
  • .NET Core日志内容详解,详解不同日志级别的区别和有关日志记录的实用工具和第三方库详解与示例
  • .NET Core实战项目之CMS 第十二章 开发篇-Dapper封装CURD及仓储代码生成器实现
  • .NET Framework .NET Core与 .NET 的区别
  • .NET的数据绑定
  • .NET开源项目介绍及资源推荐:数据持久层
  • .so文件(linux系统)
  • /boot 内存空间不够
  • @ConfigurationProperties注解对数据的自动封装