ConstraintLayout 是一个 ViewGroup,可用作支持库,您可以在从 API 级别 9(Gingerbread)开始的 Android 系统上使用。 RelativeLayout 和 ConstraintLayout 有许多类似的地方。你可以相对地放置你的子视图,这第一眼看起来和 ConstraintLayout 实现的一样。但 RelativeLayout 有一些你可能早就知道的问题。 </span> <span class="token lf" style="box-sizing: border-box; outline: none !important;"></span> <?xml version="1.0" encoding="utf-8"?> <span class="token lf" style="box-sizing: border-box; outline: none !important;"></span> <RelativeLayout <span class="token lf" style="box-sizing: border-box; outline: none !important;"></span> xmlns:android="http://schemas.android.com/apk/res/android" <span class="token lf" style="box-sizing: border-box; outline: none !important;"></span> android:layout_width="match_parent" <span class="token lf" style="box-sizing: border-box; outline: none !important;"></span> android:layout_height="match_parent"> <span class="token lf" style="box-sizing: border-box; outline: none !important;"></span> <span class="token lf" style="box-sizing: border-box; outline: none !important;"></span><Button <span class="token lf" style="box-sizing: border-box; outline: none !important;"></span> android:id="@+id/button" <span class="token lf" style="box-sizing: border-box; outline: none !important;"></span> android:layout_width="wrap_content" <span class="token lf" style="box-sizing: border-box; outline: none !important;"></span> android:layout_height="wrap_content" <span class="token lf" style="box-sizing: border-box; outline: none !important;"></span> android:text="Button" <span class="token lf" style="box-sizing: border-box; outline: none !important;"></span> android:layout_alignParentBottom="true" <span class="token lf" style="box-sizing: border-box; outline: none !important;"></span> android:layout_alignParentEnd="true" <span class="token lf" style="box-sizing: border-box; outline: none !important;"></span> android:layout_alignParentRight="true" <span class="token lf" style="box-sizing: border-box; outline: none !important;"></span> android:layout_marginBottom="34dp" <span class="token lf" style="box-sizing: border-box; outline: none !important;"></span> android:layout_marginEnd="24dp" <span class="token lf" style="box-sizing: border-box; outline: none !important;"></span> android:layout_marginRight="24dp"/> <span class="token lf" style="box-sizing: border-box; outline: none !important;"></span> <span class="token lf" style="box-sizing: border-box; outline: none !important;"></span></RelativeLayout> <span class="token lf" style="box-sizing: border-box; outline: none !important;"></span> <span class="token md md-pre" style="box-sizing: border-box; outline: none !important; color: rgba(128, 128, 128, 0.6); font-style: normal; font-weight: normal;">
上面的代码在容器的右下方放了一个按钮 如果把 RelativeLayout 的 layout_height 改成 wrap_content,按钮就直接在容器的底部。
如果使用 ConstraintLayout 就可以避免这个问题
</span> <span class="token lf" style="box-sizing: border-box; outline: none !important;"></span> <?xml version="1.0" encoding="utf-8"?> <span class="token lf" style="box-sizing: border-box; outline: none !important;"></span> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" <span class="token lf" style="box-sizing: border-box; outline: none !important;"></span> android:layout_width="match_parent" <span class="token lf" style="box-sizing: border-box; outline: none !important;"></span> android:layout_height="wrap_content" <span class="token lf" style="box-sizing: border-box; outline: none !important;"></span> xmlns:app="http://schemas.android.com/apk/res-auto"> <span class="token lf" style="box-sizing: border-box; outline: none !important;"></span> <span class="token lf" style="box-sizing: border-box; outline: none !important;"></span><Button <span class="token lf" style="box-sizing: border-box; outline: none !important;"></span> android:id="@+id/button" <span class="token lf" style="box-sizing: border-box; outline: none !important;"></span> android:layout_width="wrap_content" <span class="token lf" style="box-sizing: border-box; outline: none !important;"></span> android:layout_height="wrap_content" <span class="token lf" style="box-sizing: border-box; outline: none !important;"></span> android:text="Button" <span class="token lf" style="box-sizing: border-box; outline: none !important;"></span> app:layout_constraintBottom_toBottomOf="parent" <span class="token lf" style="box-sizing: border-box; outline: none !important;"></span> app:layout_constraintEnd_toEndOf="parent" <span class="token lf" style="box-sizing: border-box; outline: none !important;"></span> android:layout_marginBottom="34dp" <span class="token lf" style="box-sizing: border-box; outline: none !important;"></span> android:layout_marginEnd="24dp" <span class="token lf" style="box-sizing: border-box; outline: none !important;"></span> android:layout_marginRight="24dp"/> <span class="token lf" style="box-sizing: border-box; outline: none !important;"></span> <span class="token lf" style="box-sizing: border-box; outline: none !important;"></span></android.support.constraint.ConstraintLayout> <span class="token lf" style="box-sizing: border-box; outline: none !important;"></span> <span class="token md md-pre" style="box-sizing: border-box; outline: none !important; color: rgba(128, 128, 128, 0.6); font-style: normal; font-weight: normal;">
具体使用请看下一篇: 约束布局 ConstraintLayout 的使用(二)
近期热议
推荐标签 标签
-
ZooKeeper
59 引用 • 29 回帖 • 8 关注
ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 Google 的 Chubby 一个开源的实现,是 Hadoop 和 HBase 的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
-
Scala
13 引用 • 11 回帖 • 159 关注
Scala 是一门多范式的编程语言,集成面向对象编程和函数式编程的各种特性。
-
倾城之链
23 引用 • 66 回帖 • 170 关注
-
正则表达式
31 引用 • 94 回帖 • 1 关注
正则表达式(Regular Expression)使用单个字符串来描述、匹配一系列遵循某个句法规则的字符串。
-
Redis
284 引用 • 248 回帖
Redis 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。从 2010 年 3 月 15 日起,Redis 的开发工作由 VMware 主持。从 2013 年 5 月开始,Redis 的开发由 Pivotal 赞助。
-
智能合约
1 引用 • 11 回帖 • 3 关注
智能合约(Smart contract)是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。智能合约概念于 1994 年由 Nick Szabo 首次提出。
-
Outlook
1 引用 • 5 回帖 • 5 关注
-
宕机
13 引用 • 82 回帖 • 75 关注
宕机,多指一些网站、游戏、网络应用等服务器一种区别于正常运行的状态,也叫“Down 机”、“当机”或“死机”。宕机状态不仅仅是指服务器“挂掉了”、“死机了”状态,也包括服务器假死、停用、关闭等一些原因而导致出现的不能够正常运行的状态。
- IPFS
- Angular
-
996
13 引用 • 200 回帖 • 4 关注
-
Rust
58 引用 • 22 回帖 • 14 关注
Rust 是一门赋予每个人构建可靠且高效软件能力的语言。Rust 由 Mozilla 开发,最早发布于 2014 年 9 月。
- 链书
-
设计模式
201 引用 • 120 回帖 • 2 关注
设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。
-
Mac
167 引用 • 597 回帖
Mac 是苹果公司自 1984 年起以“Macintosh”开始开发的个人消费型计算机,如:iMac、Mac mini、Macbook Air、Macbook Pro、Macbook、Mac Pro 等计算机。
-
Docker
497 引用 • 934 回帖 • 2 关注
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的操作系统上。容器完全使用沙箱机制,几乎没有性能开销,可以很容易地在机器和数据中心中运行。
-
Ngui
7 引用 • 9 回帖 • 403 关注
Ngui 是一个 GUI 的排版显示引擎和跨平台的 GUI 应用程序开发框架,基于
Node.js / OpenGL。目标是在此基础上开发 GUI 应用程序可拥有开发 WEB 应用般简单与速度同时兼顾 Native 应用程序的性能与体验。 -
Bug
76 引用 • 1742 回帖 • 2 关注
Bug 本意是指臭虫、缺陷、损坏、犯贫、窃听器、小虫等。现在人们把在程序中一些缺陷或问题统称为 bug(漏洞)。
-
golang
500 引用 • 1395 回帖 • 243 关注
Go 语言是 Google 推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发 Go,是因为过去 10 多年间软件开发的难度令人沮丧。Go 是谷歌 2009 发布的第二款编程语言。
-
CentOS
240 引用 • 224 回帖
CentOS(Community Enterprise Operating System)是 Linux 发行版之一,它是来自于 Red Hat Enterprise Linux 依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定的服务器以 CentOS 替代商业版的 Red Hat Enterprise Linux 使用。两者的不同在于 CentOS 并不包含封闭源代码软件。
-
GAE
14 引用 • 42 回帖 • 820 关注
Google App Engine(GAE)是 Google 管理的数据中心中用于 WEB 应用程序的开发和托管的平台。2008 年 4 月 发布第一个测试版本。目前支持 Python、Java 和 Go 开发部署。全球已有数十万的开发者在其上开发了众多的应用。
-
LeetCode
209 引用 • 72 回帖 • 1 关注
LeetCode(力扣)是一个全球极客挚爱的高质量技术成长平台,想要学习和提升专业能力从这里开始,充足技术干货等你来啃,轻松拿下 Dream Offer!
-
互联网
98 引用 • 367 回帖
互联网(Internet),又称网际网络,或音译因特网、英特网。互联网始于 1969 年美国的阿帕网,是网络与网络之间所串连成的庞大网络,这些网络以一组通用的协议相连,形成逻辑上的单一巨大国际网络。
-
Logseq
7 引用 • 69 回帖 • 4 关注
Logseq 是一个隐私优先、开源的知识库工具。
Logseq is a joyful, open-source outliner that works on top of local plain-text Markdown and Org-mode files. Use it to write, organize and share your thoughts, keep your to-do list, and build your own digital garden.
-
ngrok
7 引用 • 63 回帖 • 654 关注
ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。
-
架构
142 引用 • 442 回帖
我们平时所说的“架构”主要是指软件架构,这是有关软件整体结构与组件的抽象描述,用于指导软件系统各个方面的设计。另外还有“业务架构”、“网络架构”、“硬件架构”等细分领域。
-
大疆创新
2 引用 • 14 回帖
深圳市大疆创新科技有限公司(DJI-Innovations,简称 DJI),成立于 2006 年,是全球领先的无人飞行器控制系统及无人机解决方案的研发和生产商,客户遍布全球 100 多个国家。通过持续的创新,大疆致力于为无人机工业、行业用户以及专业航拍应用提供性能最强、体验最佳的革命性智能飞控产品和解决方案。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于