Hi,你们好,新的一周开始啦,让咱们继续遨游在Android的知识海洋中吧!上一次咱们讲到了RelativeLayout,相信很多小伙伴已经着手实战,那么今天咱们为你们带来六大布局中剩下的三个布局。本篇文章能够和前面的FrameLayout一同归类到Android很是用布局之中,虽然不经常使用,可是小伙伴们也要知道它的一些基础属性哦~android
AbsoluteLayout
(绝对布局), 之因此把这个放到最后,是由于绝对布局,咱们基本上都是不会使用的,固然你也能够直接跳过这一 篇博文,不过做为一个喜欢增加姿式的程序员,咱们仍是能够了解这个AbsoluteLayout
布局的。放入该布局的UI控件经过android:layout_x
和 android:layout_y
两个属性指定其准确的坐标值,并显示在屏幕上。程序员
理论上,AbsoluteLayout
布局可用以完成任何的布局设计,灵活性很大,可是在实际的工程应用中不提倡使用这种布局。由于使用这种布局不但须要精确计算每一个组件的大小,增大运算量,并且当应用程序在不一样屏幕尺寸的手机上运行时会产生不一样效果。布局
AbsoluteLayout
的布局属性就两个:spa
AbsoluteLayout
只有这个两个属性,从绝对布局的名字就能够看出来,就是在 X 轴方向和 Y 轴方向经过 dip值(或者 px ) 绝对固定距离。设计
在例子中显示三个View。code
从例子中能够得出下面结论:对象
layout_x
和layout_y
,那么它们的默认值是0。TableLayout
(表格布局)是将子view分别排列成行和列的布局,TableLayout
是由许多TableRow
对象组成的,表格布局以行列的形式管理子控件,每个单元是一个TableRow
或者View
对象。blog
在TableLayout
中能够经过setConlumnShrinkable()
或setConlumnStretchable()
方法来指定某些列为能够缩小或可伸缩,列是从0开始计数的,第一列为0。ip
TableLayout
经常使用布局属性:rem
stretchColumns
设置运行被拉伸的列的序号 ,如 android:stretchColumns="1,3"
表示在第三列的和第四列的一块儿填补空白,若是要全部列一块儿填补空白,则用“*”
符号,列号都是从0开始算的。图中按钮2被拉伸来替补空白。
shrinkColumns
设置被收缩的列的序号 ,收缩是用于在一行中列太多或者某列的内容文本过长,会致使某列的内容会被挤出屏幕,这个属性是能够帮助某列的内容进行收缩,用于防止被挤出的。图中又在上面布局添加按钮5,此时 android:shrinkColumns="1"
,按钮2被收缩了。
collapseColumns
设置须要被隐藏的列的序号 使用该属性能够隐藏某列。图中在上面的布局中添加 android:collapseColumns="1"
,原来的按钮2被隐藏了。
layout_column
为该子类控件显示在第几列。android:layout_column="2"
表示跳过第二个,直接显示在第三个单元格内。layout_span
为该子类控件占据第几列。android:layout_span="3"
表示合并3个单元格,就是这个组件将占据3个单元格。GridLayout
(网格布局)是在Android 4.0
之后引入的一种新的布局模式,和表格布局是有点相似的,但比表格布局的好,功能也是很强大的,它能够设置布局有多少行和有多少列,也能够设置布局中的组件的排列方式,也能够设置组件的位置,横跨多少行,多少列。
android:orientation
用于设置vertical
竖直或horizontal
水平。
android:layout_gravity
为设置对齐方式,能够设置center,right,left
等。
android:rowCount
为能够设置行数,要多少行设置多少行,如android:rowCount="2"
为设置网格布局有2行。
android:columnCount
为能够设置列数,要多少列设置多少列,如android:columnCount="2"
为设置网格布局有2列。
android:layout_row
为设置组件位于第几行,从0开始计数的,如android:layout_row="1"
为设置组件在第2行。
android:layout_column
为设置组件位于第几列,从0开始计数的,如android:layout_column="1"
为设置组件在第2列。
android:layout_rowSpan
为设置组件横跨几行,如android:layout_rowSpan="2"
为纵向横跨2行。
android:layout_columnSpan
为设置组件横跨几列,如android:layout_columnSpan="2"
为橫向横跨2列。
网格布局在实际应用中不多使用,通常都是经过系统提供的另个一个列表控件 RecyclerView
。
线性布局: 指子控件以水平或垂直方式排列。
相对布局: 指子控件以控件之间的相对位置或子控件相对于父容器的位置排列。
帧布局: 指全部子控件均放在左上角且后面元素直接覆盖在前面元素之上。
绝对布局: 指子控件经过绝对定位x,y位置来决定其位置摆放。
表格布局: 指以行列的形式放置子控件,每一行是一个TableRow对象或者View对象。
网格布局: 指以网格状放置子控件,能够控制网格内部行、列个数。
以上就是本篇的所有内容,Android六大布局的基本使用也已经所有告诉你们,但愿小伙伴们能够发挥大家的想象力,将不一样的布局融合出来一个demo发给咱们,咱们会将效果很是炫的demo进行展现,欢迎小伙伴踊跃投稿~
PS:若是还有未看懂的小伙伴,欢迎加入咱们的QQ技术交流群:892271582,里面有各类大神回答小伙伴们遇到的问题哦~