Android studio 常见布局理解总结

综述
Android的布局有好多好多种,官方的、自定义的等等,五花八门。安卓有五大基本布局,现在共有六种,前五种是传统的,还有一种是比较新的。

五种传统布局

  • LinearLayout(线性布局)
  • RelativeLayout(相对布局)
  • FrameLayout(帧布局)
  • AbsoluteLayout(绝对布局)
  • TableLayout(表格布局

其中,最常用的布局是前三种

新布局

  • ConstraintLayout(约束布局)

我们主要对LinearLayout(线性布局)、RelativeLayout(相对布局)、FrameLayout(帧布局)、ConstraintLayout(约束布局)进行总结

一、LinearLayout

0.简介

线性布局,最常用的布局之一,所有包含在线性布局里的控件在线性方向上依次排列。接下来看看一些线性布局常用的属性。

1.方向

在线性布局里面的控件,是按照线性的顺序进行排列的,方向有两种:横向和纵向。
属性和属性值:
android:orientation="horizontal" //水平
android:orientation="vertical" //垂直
代码实例:

//水平
android:orientation="horizontal
//垂直
android:orientation="vertical"

2.对齐方式

属性:
android:gravity
android:layout_gravity
需要注意的是,这两个属性是有区别的:
android:gravity 是指本元素的子元素相对它的对齐方式
说白了就是内部的元素内容,比如textview中的text文字等等内容 在按钮等等控件中的的位置
android:layout_gravity是指本元素相对它的父元素的对齐方式。
相同的,对于其他属性,如果加上layout_前缀,就代表着本元素相对父元素的属性。 就是前面的button等等在面板中的位置,而不是button中的内容

常用的属性值:
android:gravity="center_horizontal" 子控件水平方向居中
android:gravity="center_vertical" 子控件竖直方向居中
android:gravity="center" 子控件竖直方向和水平方向居中
android:gravity= start || end || top || bottom 子控件左对齐 || 右对齐 || 顶部对齐 || 底部对齐
android:gravity= left || right 子控件左对齐 || 右对齐
这里的start和left属性,end和right属性需要注意一下,这里写的是对于中国的情况而言。实际上,他们两个是不同的,left是绝对的左边,而start会根据不同的国家习惯改变。比如在从右向左顺序阅读的国家,start代表的就是在右边

3.子控件大小

属性:
layout_height
layout_width
layout_weight
属性值:
layout_height= "wrap_content" 根据子控件内容的大小决定大小
layout_height= "match_parent" 子控件填满父容器
layout_height= "xdp" 直接设置大小,一般可能不会采用

二、RelativeLayout

0.简介

相对布局,也是非常常用的布局之一,和LinearLayout严格的线性排列不同,相对布局更随意,它可以让子控件出现在整个布局的任何位置

1.属性值为true或false

  • android:layout_centerHrizontal 水平居中
  • android:layout_centerVertical垂直居中
  • android:layout_centerInparent 相对于父元素完全居中
  • android:layout_alignParentBottom 贴紧父元素的下边缘
  • android:layout_alignParentLeft 贴紧父元素的左边缘
  • android:layout_alignParentRight 贴紧父元素的右边缘
  • android:layout_alignParentTop 贴紧父元素的上边缘

2.属性值必须为id的引用名[“@id/id-name]
属性和属性值:

 - android:layout_below 在某元素的下方
 - android:layout_above 在某元素的的上方
 - android:layout_alignTop 本元素的上边缘和某元素的的上边缘对齐
 - android:layout_alignLeft 本元素的左边缘和某元素的的左边缘对齐
 - 以及左右等等,同理可得

3.属性值为具体的像素值,如30dip,40px
属性和属性值:

android:layout_marginBottom 离某元素底边缘的距离
android:layout_marginLeft 离某元素左边缘的距离
android:layout_marginRight 离某元素右边缘的距离
android:layout_marginTop 离某元素上边缘的距离

这里需要注意,有一个padding属性,和margin属性非常相似,我原来总是把这两个属性搞混。

padding和margin属性详解
先看两个单词的释义:
margin 边缘
padding 衬垫,填充
然后应该就能区分出这两个属性了,一个是边缘(外边距),指该控件距离父控件或其他控件的边距;另一个是填充(内边距),指该控件内部内容,如文本/图片距离该控件的边距。

三、FrameLayout

0.帧布局

可能是最简单的一种布局,没有任何定位方式,当我们往里面添加控件的时候,会默认把他们放到这块区域的左上角,帧布局的大小由控件中最大的子控件决定,如果控件的大小一样大的话,那么同一时刻就只能看到最上面的那个组件,后续添加的控件会覆盖前一个

1.属性
android:foreground //设置改帧布局容器的前景图像
android:foregroundGravity //设置前景图像显示的位置

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值