Android开发 - 掌握ConstraintLayout(八)障碍线(Barrier)

本文我们来介绍障碍线(Barrier)的使用,平常在开发中用的相对要少一些,但是在需要时会非常方便。

它的作用是将多个元素放到这个障碍线里面使时,其中的任何元素的大小或位置变化时都会使它的位置进行改变。

可以理解成一面墙,"墙"里面任何元素的位置或大小改变时都会导致它的改变,从而保证所有的元素都在"墙"里面。

下面我们来举例进行说明,会更加直观。

  1. 首先,我们先创建两个元素:
  2. 接下来,我们来创建一条垂直的Barrier:
  3. 创建后,我们把这两个View拖到这个Barrier里面:

    注意:这里将View拖进去并不是真正创建了层级关系,我们看代码可以知道,仅仅这个Barrier引用了两个View的ID:

    <android.support.constraint.Barrier
        android:id="@+id/barrier"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:barrierDirection="left"
        app:constraint_referenced_ids="button,textView"
        tools:layout_editor_absoluteX="104dp" />
  4. 默认的Barrier是在所有元素的左面,我们选中它后可以选择靠右对齐:

    创建完成后我们来调整其里面的各个View的大小和位置就可以理解它的作用了:


总结

Barrier特别在复杂的页面布局的时候非常有用,不需要创建一个容器来放置这些子View来实现这样的功能了,这也是我们使用ConstraintLayout的初衷,保证层级的简单和高效。

下一篇:Android开发 - 掌握ConstraintLayout(九)分组(Group),我们将介绍分组(Group)的使用。

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

原文地址:http://blog.51cto.com/11761032/2323646

时间: 2024-07-31 04:44:58

Android开发 - 掌握ConstraintLayout(八)障碍线(Barrier)的相关文章

Android开发 - 掌握ConstraintLayout(九)分组(Group)

使用ConstraintLayout后我们的布局是没有层级关系的,各个View之间都是平级关系,但是如果根据某个业务条件来控制多个View的显示与否,我们需要分别对每个View进行控制,需要调用多次setVisibility().这样就显得非常不方便. 本文所介绍的Group就是解决这个问题的. Group就是一个分组,可以关联多个View,从而只需要对这个分组进行控制就可以实现这样的场景. 我们下面来介绍它的使用. 添加分组 首先,我们添加一个Group: 关联元素 然后将页面上的元素拖动到这

Android开发笔记(八十八)同步与加锁

同步synchronized 同步方法 synchronized可用来给方法或者代码块加锁,当它修饰一个方法或者一个代码块的时候,同一时刻最多只有一个线程执行这段代码.这就意味着,当两个并发线程同时访问synchronized代码块时,两个线程只能是排队做串行处理,另一个线程要等待前一个线程执行完该代码块后,才能再次执行synchronized代码块. 使用synchronized修饰某个方法,该方法便成为一个同步方法,在同一时刻只能有一个线程执行该方法.可是,synchronized的锁机制太

Android开发 - 掌握ConstraintLayout(一)传统布局的问题

在传统的Android开发中,页面布局占用了我们很多的开发时间,而且面对复杂页面的时候,传统的一些布局会显得非常复杂,每种布局都有特定的应用场景,我们通常需要各种布局结合起来使用来实现复杂的页面.随着ConstraintLayout的推出,这种现象有了很大的改善,而且它可以实现很多传统布局难以实现的功能. 本系列我们就一起来学习ConstraintLayout的使用,来大幅提高我们的生产力. 传统布局 在ConstraintLayout退出之前,我们经常使用FrameLayout, Linear

Android开发 - 掌握ConstraintLayout(三)编辑器

从本篇博客开始我们开始介绍如何使用ConstraintLayout.既然ConstraintLayout叫约束布局,首先我们先介绍什么叫约束(Constraints): 约束(Constraints) 一个约束表示View之间的"布局约束"关系,以及约束的位置,类似RelativeLayout的"相对"概念. 编辑器介绍 在工程中我们新建一个布局activity_main.xml,整个界面如下: 这是一个编辑器整体的界面,下面我们来介绍一些常用的功能: 设计/文本视

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

上一篇我们介绍了编辑器的基本使用,本文我们介绍创建基本的约束. "约束"表示View之间的位置关系.当我们在ConstraintLayout布局中创建View时,如果我们没有添加任何约束,虽然在设计视图我们可以拖动它们到任意位置,但是运行后都会在左上角的原点位置,同时代码中也会给出警告: 所以我们必须确保我们的View都被添加了适当的约束.我们常用的约束通常有两种,一种是相对父View的约束,一种是相对其它View的约束. 相对父布局的约束 创建相对布局的约束时比较简单,将对象方位的锚

Android开发 - 掌握ConstraintLayout(六)链条(Chains)

本文我们介绍链条(Chains),使用它可以将多个View连接起来,互相约束. 可以创建横向的链条,也可以创建纵向的链条,我们以横向的链条举例: 我们先创建三个按钮: 我们选中三个按钮后在上面点右键创建链条: 创建后我们发现这三个View平均分布地排列了: 最简单的使用是平均分布,当然也可以不平均分布,具体看约束的具体设置,比如将第一个Button的marginEnd设置成10后链条会自动地分布每个View的位置. 这使得分布View变得非常灵活,并且从某种程度上可以取代LinearLayout

Android开发(十八)——头部、中部、底部布局技巧

头部.中部.尾部布局涉及到布局内容自适应,总结两个技巧: 第一种相对布局: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android

Android开发系列(八):采用Pull解析器解析和生成XML内容

因为有些时候,应用的数据是采用XML文件的格式存放的,所以我们需要知道怎么从XML文件中读取这些数据 在Android中可以通过SAX.DOM.pull解析XML文件. 在本篇博文中主要介绍采用Pull解析器解析和生成XML内容. 介绍:在Android已经集成了Pull解析器,所以无需添加任何的jar文件.在Android中本身用到的各种xml文件,其内部也是采用Pull解析器进行解析的. 一.采用Pull解析器解析XML文件内容 首先,我们需要先建立一个Android Project项目,名

【转】Android开发笔记(序)写在前面的目录

原文:http://blog.csdn.net/aqi00/article/details/50012511 知识点分类 一方面写写自己走过的弯路掉进去的坑,避免以后再犯:另一方面希望通过分享自己的经验教训,与网友互相切磋,从而去芜存菁进一步提升自己的水平.因此博主就想,入门的东西咱就不写了,人不能老停留在入门上:其次是想拾缺补漏,写写虽然小众却又用得着的东西:另外就是想以实用为主,不求大而全,但求小而精:还有就是有的知识点是java的,只是Android开发也会经常遇上,所以蛮记下来.个人的经