Andriod studio布局

布局

布局介绍

1.在4.0以前版本中一共有五种布局,都是ViewGroup的子类。分别是AbsoluteLayout、RelativeLayout、LinearLayout、FrameLayout、TableLayout。而 TableLayout是LinearLayout的子类。
(中文分别是:绝对布局、相对布局、线性布局、帧布局、 表格布局)。
2、在2.2操作系统中将AbsoluteLayout过期。而目前FrameLayout、TableLayout也逐渐少用。
3、在4.0之后又新增GridLayout。(GridLayout最经典的案例是计算器界面)
总之,Android中一共有六种布局。
目前通过搜索一般推荐使用RelativeLayout、LinearLayout、GridLayout三种布局。

LinearLayout(线性布局)

一)、概念:线性布局控制其中的控件或组件横向或纵向排列。
线性布局中,每一行或每一列只能放一个控件。并且线性布局不会换行。当控件排列到窗体边缘,后面的控件就被隐藏,而不会显示出来。线性布局的默认方向是水平方向(Horizontal)。
(二)、LinearLayout的常用属性:1. android:orientation : 定义布局内控件或组件的排列方向 可选项:vertical 、 horizontal
2. android:layout_width : 定义控件的宽度可选项:fill_parent / match_parent/ wrap_content/绝对数值
备注:fill_parent / match_parent的效果完全一致,都是填充整个父控件。
wrap_content指的是该控件的宽度正好包裹内容物。
3. android:layout_height : 定义控件的高度可选项:fill_parent / match_parent/ wrap_content/
绝对数值备注:fill_parent / match_parent的效果完全一致,都是高度填充整个父控件。
wrap_content指的是该控件的高度正好包裹内容物。
4. android:id : 设置控件的id。这样就可以在R.java中自动生成相应的值,在程序中通过findViewById就可以调用。
设置id的格式为:android:id = “@+id/id的名字”
5. android:background : 设置控件的背景颜色或背景图片例如:android:background="#ffffff"
android:background="@drawable/图片名称"

android:layout_weight : 设置控件的权重。即各控件在水平或者垂直方向上平均分配。
①. LinearLayout特有的属性——android:layout_weight,它表示比重的意思,可实现百分比布局
②. 如果控件为“match_parent”,则layout_weight的值与占用比重是反相关的,其值越大,它占用的比重越小。
③. 如果控件为“wrap_content”,则对比重的判断会变为正相关,即其值越小,占用的空间越少。但是这种情况下,有时候不会严格地按照比重来显示,如果某个View中的内容过多,就会占用过多的空间。
备注:
如果是水平方向设置权重,要将android:layout_width设置为0dp,如果是垂直方向上使用权重,要将android:layout_height设置为0dp。否则权重容易受到高度或宽度的干扰而出现偏差。7. android:gravity : 该属性用来控制该View的内容物的位置。如果该属性是定义在布局节点中,则该布局中所有控件的位置都受到这个属性的控制。如果该属性出现在Button、TextView、EditText等控件中,则用来控制这些控件上的文字的位置。可选项有:top、bottom、left、right、center_vertical、fill_vertical 、 center、fill等等。
备注:
本属性与android:layout_gravity不同。
8. android:layout_gravity : 该属性用于设置控件相对于容器的对齐方式。可选项有:top、bottom、left、right、center_vertical、fill_vertical 、 center、fill等等。
这些可选项并不是适用于每一种布局。
在垂直线性布局中,android:gravity为bottom不起作用;
而水平线性布局中,android:gravity为right不起作用。
(三)、LinearLayout的特有属性:
①、android:orientation
布局管理器内组件的排列方式
②、android:layout_weight 设置布局中控件所占的权重
(四)、 LinearLayout 子元素的特有属性:
①、android:layout_weight
子元素在 LinearLayout 中所占的权重
②、android:layout_gravity 子元素在 LinearLayout 中的对齐方式

RelativeLayout(相对布局)

(一)、概念:指按着控件之间的相对位置来进行布局。
(二)、RelativeLayout特有属性:1、android:gravity
设置布局容器内子控件的对齐方式
2、android:ignoreGravity 设置布局管理器内哪个控件不受gravity属性的影响
(三)、RelativeLayout子元素的特有属性:
①、第一组:指兄弟控件之间的相对位置。该组属性的值是另一个控件的id。
layout_toRightOf 该控件在哪个控件的右侧
layout_toLeftOf 该控件在哪个控件的左侧
layout_above 该控件在哪个控件的上侧
layout_below该控件在哪个控件的下侧
②、第二组:指兄弟控件之间的对齐关系。该组属性的值是另一个控件的id。
layout_alignRight 该控件与哪个控件右对齐
layout_alignLeft 该控件与哪个控件左对齐
layout_alignTop 该控件与哪个控件顶对齐
layout_alignBottom 该控件与哪个控件底对齐
layout_alignBaseLine 该控件与哪个控件基线对齐
③、第三组:指控件与父布局之间的对齐关系。该组属性的值是true或者false。

layout_alignParentRight 该控件与父布局中的控件右对齐吗?
layout_alignParentLeft 该控件与父布局中的控件左对齐吗?
layout_alignParentTop 该控件与父布局中的控件顶端对齐吗?
layout_alignParentBottom 该控件与父布局中的控件底部对齐吗?
layout_centerInParent 该控件位于父布局中的控件中心位置吗?
layout_centerVertical 该控件位于父布局中的垂直中心位置吗?
layout_centerHorizontal 该控件位于父布局中的水平中心位置吗?

FrameLayout(帧布局)

1.多个组件,层叠显示
2.所占位置和大小由组件决定
它相比于LinearLayout和RelativeLayout要简单很多,因为它的应用场景也少了很多。这种布局没有方便的定位方式,所有的控件都会默认摆放在布局的左上角。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值