二、Android常用布局容器

转载 https://www.songyubao.com/book/primary/ui/viewgroup.html

Android 的UI 可以分为两类,一类叫做ViewGroup容器,一类叫做View视图

View视图:(TextView,Button,ImageView)都是常用常见的视图.

ViewGroup容器:内部可以承载、放置、添加View视图

1. 基础布局容器(7种)

  • LinearLayout线性布局:横着或竖着按顺序排列
  • RelativeLayout相对布局:起始坐标时屏幕左上角,以同级或上级为参考系定位位置(以屏幕的左上角为常考点来摆放它们的位置)
  • FrameLayout帧布局:像千层饼一样,一层压着一层(同样以屏幕的左上角为常考点来确定它们的位置)
  • ConstraintLayout约束布局:google于2016年新发布的一种布局方式,它不在android的基础api包里,需要额外引入
  • AbsoluteLayout绝对布局(以屏幕左上角为参考系,定位自己的位置,从android 2.2版本后废弃)
  • GridLayout网格布局(可以指定行数列数,子控件自动根据行列数进行分配位置,于android 4.0后新增进api中)
  • TableLayout表格布局(类似于网格布局,以一个TableRow标签定义为一行或一列)

2. 线性布局LinearLayout

属性可选值说明
orientation1.vertical:垂直排列 2.horizontal:水平排列(从左到右)也就是这个线性布局到底是水平方向逐个排列还是垂直方向逐个排列
layout_width layout_height1.match_parent:填充父容器的剩余空间 2.wrap_content:根据子视图宽高自适应自己的宽高 3.自定义大小50dplayout_width和layout_height是android中控件的必要属性,规定了控件的宽度和高度,这个两个属性的值可以是指定的值,也可以根据内容自适应,还可以填充整个剩余空间
background#ff0000 红色填充背景色
gravity1.center:所有子视图相对于父容器居中显示 2.horizontal_center:所有子容器的横向方向上相对父容器居中显示 3.vertical_center:所有子视图的纵向方向上相对父容器居中显示决定子控件相对该父容器的位置(对齐方式的表示)
layout_gravity1.center:该容器相对于它的父容器居中显示 2.horizontal_center:该容器横向方向上相对它的父容器居中显示 3.vertical_center:该容器纵向方向上相对它的父容器居中显示决定该容器相对它的父容器的位置
weight按比例分配父容器剩余的宽度或高度

tips:

1、button高版本改变背景色要用 android:backgroundTint 属性

2、android:layout_gravity 如果对齐方式和 android:orientation 方向一致就会失效

3、在父类中使用 子类相较与父类的布局android:gravity子控件使用
android:layout_gravity

4、orientation="vertical"时 layout_weight等比分配高度使用orientation="horizontal"时 layout_weight等比分配宽度

5、layout_weight则layout_width失效
当layout_width=“0dp” layout_weight=数字越大宽度越长

3. 相对布局RelativeLayout

相对布局在摆放子视图位置时,按照指定的参考系来摆放子视图的位置,默认以屏幕左上角(0,0)位置作为参考系摆放位置

  • 相对于父元素 7个常用属性
属性可选值说明
layout_alignParentToptrue/false是否让控件相对于父容器顶部对齐
layout_alignParentBottomtrue/false是否让控件相对于父容器底部对齐
layout_alignParentLefttrue/false是否让控件相对于父容器左边对齐
layout_alignParentRighttrue/false是否让控件相对于父容器右边对齐
layout_centerHorizontaltrue/false相对父容器水平居中显示
layout_centerVerticaltrue/false相对父容器垂直居中显示
centerInParenttrue/false相对父容器居中显示
  • 相对于兄弟元素 4个常用属性
属性可选值说明
layout_above@+id/指定在那个控件的上侧
layout_below@+id/指定在那个控件的下侧
layout_toLeftOf@+id/指定在那个控件的左侧
layout_toRightOf@+id/指定在那个控件的右侧
  • 相对于兄弟元素的对齐方式
属性可选值说明
layout_alignLeft@+id/该控件的左边沿与指定控件的左边对齐
layout_alignRight@+id/该控件的右边沿与指定控件的右边对齐
layout_alignTop@+id/该控件的上边沿与指定控件的上边沿对齐
layout_alignBottom@+id/该控件的下边沿与指定控件的下边沿对齐

按钮上下什么有空 可以修改android:insetXXX

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CPGOwQ7j-1634868915446)(https://raw.githubusercontent.com/hairlyOwl/photo/master/image.4jz886j3y540.png)]

4. 帧布局FrameLayout

帧布局FrameLayout

组件的默认位置都是左上角,组件之间可以重叠。像千层饼一样,一层压着一层 可以设置上下左右的对齐、水平垂直居中、设置方式与线性布局相似

  • 常用属性
属性可选值说明
layout_gravitycenter/center_vertical/center_horizontal组件相对父容器的位置
layout_marginLeft具体的数值100dp左侧外间距
layout_marginTop具体的数值100dp上侧外间距
layout_marginRight具体的数值100dp右侧外间距
layout_marginBottom具体的数值100dp下侧外间距

总结

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值