嗨咯,又见面了大家,这里简单介绍一下这篇文章的内容:
LinearLayout、RelativeLayout、ConstraintLayout
android现在可以说是一共有六大布局,但是之前的几乎已经不用,有兴趣的可以自行百度,这里直说现在常用的三个布局,还有常用的属性。
一、LinearLayout(后面简称ll)
顾名思义:线性布局 线性就是指的一条线,是个直的,在手机屏幕上,你要么横着,要么竖着,别给我拐弯。拐弯会挨打的。
emmmm,写一个小东西简单说一下吧。
先说一下通用宽高属性:
layout_width与layout_height
值:match_parent 你可以理解为全屏
值:wrap_content 填充内容,指的是其大小会根据内容的大小而定
值:fill_parent 用新版的同学发现它已经被弃用了,指的是填充,有兴趣可以自行左转了解更多。
好了开始吧:
orientation属性:vertical 垂直方向如图
orientation属性:horizontal 水平方向如图
扩展:LinearLayout分割线
divider:分割线资源
showDividers:显示方式
middle:控件之间
end最后
none 没有
beginning 开始
如果我们想实现这个布局,用RelativeLayout怎么做呢?
二、RelativeLayout(后面简称rl)
这里我们还是通过预览形式大致了解一下相对布局的属性
首先根布局是RelativeLayout
*我们什么都不做
我们会发现,布局上只能看到一个view,就是最后写的那个view。
这里意思是,我rl内部所有的子view都是想对于我rl本身内部的位置。
我们什么都不做会默认在左上角。
问题1:我想跟ll一样横向排布局怎么办
我们来介绍一个属性
android:layout_toRightOf ------ 意思为:在xxx的右边
效果如图
问题2:我想跟ll一样纵向排布局怎么办
还是介绍一个属性:
android:layout_below ----- 意思是:在xxx的下面
效果如图:
问题3:我想写一个微信顶部的布局怎么办,中间是标题,最左边和最右边两个图片
再来介绍三个属性:
android:layout_centerHorizontal ---- 相对于父控件rl 水平居中
android:layout_alignParentLeft ---- 相对于父控件rl 最左侧
android:layout_alignParentRight ---- 相对于父控件rl 最右侧
效果如图:(布局很丑,不要介意)
扩展:
我们有相对控件右边,下面,当然也有左边,上面。 有相对于父控件最左最右,也要有最上最下,水平居中自然还会有垂直居中,还有直接居中。
我们来分别结合看一下效果:
1、先看一下居中效果
垂直居中:android:layout_centerVertical="true"
直接居中:android:layout_centerInParent="true"
2、再来看一下相对上和左
android:layout_above: 相对于xx控件上方
android:layout_toLeftOf: 相对于xx控件左边
那么就会有人问了,这感觉有点不对啊,我是想在控件的左边,为啥它离这么远呢?
这张截图,我是别有深意的,请自己看居中控件的有条预览辅助线: 我们看到两个控件确实在居中控件的相对位置,可是并没有移动到居中控件的正上方和正左方。(后面正右方正下方同理)
那么我们有了问题4:如何移动到正 上下左右
我们知道,我们的控件可以相对于父控件垂直、水平和直接 居中。
虽然我们的居中控件居中了,但是所想依赖它的控件并没有,所以我们再来调整一下:
关键位置已经在图中用箭头标出。
rl和ll的基本用法到这里已经基本结束,到这里我想已经可以完成你的基本需求,有想了解更多api的人可以去看看官方文章。
三、ConstraintLayout(后面简称cl)
cl的由于是谷歌推出的新布局,虽然现在已经不能叫新了,作者这边不单独出教程了,这里推荐一个外链:
约束布局ConstraintLayout看这一篇就够了
文章写的相当不错。学习时间可能较长, 还希望大家认真学习。
这节课就到这里。下课