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

使用ConstraintLayout后我们的布局是没有层级关系的,各个View之间都是平级关系,但是如果根据某个业务条件来控制多个View的显示与否,我们需要分别对每个View进行控制,需要调用多次setVisibility()。这样就显得非常不方便。

本文所介绍的Group就是解决这个问题的。

Group就是一个分组,可以关联多个View,从而只需要对这个分组进行控制就可以实现这样的场景。

我们下面来介绍它的使用。

添加分组

首先,我们添加一个Group:

关联元素

然后将页面上的元素拖动到这个分组中:

注意这里将View拖动到这个Group中,并不是创建了一个层级关系,而是Group关联了这些View,同上一篇:Barrier的使用一样,可以查看代码:

这样我们就构成了一个分组,然后我们只需要控制这个分组的显示与否就可以同时控制其关联的View的显示与否了。

显示控制

我们选中这个Group,然后在右侧的属性栏可以改变其显示属性。当然也可以通过代码来控制:

findViewById(R.id.group).setVisibility(View.GONE);

总结

因为传统布局存在View的层级关系,所以通过控制父View的显示即可。使用ConstraintLayout后则可以通过使用分组可以解决这样的问题。

下一篇:Android开发 - 掌握ConstraintLayout(十)按比例设置视图大小,我们将介绍如何按比例设置View的大小。

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

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

时间: 2024-10-31 18:05:33

Android开发 - 掌握ConstraintLayout(九)分组(Group)的相关文章

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

本文我们来介绍障碍线(Barrier)的使用,平常在开发中用的相对要少一些,但是在需要时会非常方便. 它的作用是将多个元素放到这个障碍线里面使时,其中的任何元素的大小或位置变化时都会使它的位置进行改变. 可以理解成一面墙,"墙"里面任何元素的位置或大小改变时都会导致它的改变,从而保证所有的元素都在"墙"里面. 下面我们来举例进行说明,会更加直观. 首先,我们先创建两个元素: 接下来,我们来创建一条垂直的Barrier: 创建后,我们把这两个View拖到这个Barri

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

Xamarin.Android开发实践(九)

Xamarin.Android之ActionBar与菜单 一.选项卡 如今很多应用都会使用碎片以便在同一个活动中能够显示多个不同的视图.在 Android 3.0 以上的版本中,我们已经可以使用ActionBar提供的Tab来实现这种效果,而不需要我们自己去实现碎片的切换.ActionBar默认是不具备选项 卡功能的,所以我们需要给一个属性赋上对应的枚举,比如下面的方式将开启选项卡. 1 ActionBar.NavigationMode = ActionBarNavigationMode.Tab

Android开发笔记(九十七)图片的特效处理

图片特效用到的函数 本文讲述的图片特效处理包括:怀旧.光照.光晕.底片.浮雕.模糊.锐化.黑白.冰冻.素描,所有这些特效都是基于一定的算法,对图像每个点的RGB值进行计算,并汇总所有点的计算结果生成新图片. 特效处理主要用到Bitmap类的三个方法: createBitmap : 创建一张新图片. getPixels : 从指定图片中获取所有点的像素数组. setPixels : 对指定图片设置所有点的像素数组. 图片怀旧效果 现实生活中的老相片都是泛黄的,而黄色又是由绿色和红色混合而成,所以怀

Android开发之点九图的制作说明

总结: 左边的点代表垂直拉伸的区域, 上边的点代表水平拉伸的区域. 右边的点代表文字等的垂直可可显示区域, 下边的点代表文字等的水平可显示区域. 左上重合的区域就是拉伸区域. 右下重合的区域就是显示区域. 以下是转载: "点九"是andriod平台的应用软件开发里的一种特殊的图片形式,文件扩展名为:.9.png 智能手机中有自动横屏的功能,同一幅界面会在随着手机(或平板电脑)中的方向传感器的参数不同而改变显示的方向,在界面改变方向后,界面上的图形会因为长宽的变化而产生拉伸,造成图形的失

Android开发系列(九):创建数据库以及完成简单的CRUD操作

本篇博文主要实现简单的创建数据库以及实现CRUD操作. 首先,我们建立一个Android Project,命名为db 一.完成数据库的创建操作: 用SQLiteOpenHelper类中的getWritableDatabase()和getReadableDatabase()都可以获取一个操作数据库的SQLiteDatabase实例,其中getReadableDatabase()方法中会调用getWritableDatabase()方法. 区别:其中,getWritableDatabase() 方法