几种布局的特性

线性布局

竖直方向
  • 左右对齐生效,顶部底部对齐无效
  • 水平居中生效,竖直居中无效

例:

几种布局的特性_第1张图片
代码部署
几种布局的特性_第2张图片
鸭姐并没有成为下面的朋友
水平方向
  • 顶部底部对齐生效,左右对齐无效
  • 竖直居中生效,水平居中无效

例(orientation改成了"horizontal"):

几种布局的特性_第3张图片
淋淋和仙子站在原地没动作

注:两者不能同时生效,线性布局中的组件是永远不会重叠的。

权重


  • layout_weightSum:把线性布局中剩余空间分成N份。

  • layout_weight:指定当前控件在父元素(线性布局)中占N份。

  • visibility:是控制布局是否显示

含义
visible 显示
invisible 不显示但占空间
gone 隐藏

例:

几种布局的特性_第4张图片
代码部署
几种布局的特性_第5张图片
阴婷大事不妙

解:第一个文本框的宽度给了20dp,第二个文本框100dp,屏幕剩下的宽度会按照比例(1:1)分配给两个文本框。

注:在项目开发的过程中设置控件宽度搭配权重的时候通常把控件宽度设置为0dp,这样控件没有初始宽度,按比例分配宽度很好计算。

另:weightSum属性是可以去掉的,计算结果等于控件的权重和,若weightSum的值大于控件的值,则会在屏幕上会有部分留白

例:

几种布局的特性_第6张图片
代码部署
几种布局的特性_第7张图片
鸭姐神秘失踪

相对布局

  • 组件可以重叠(没有方向性)
  • 所有组件默认位置:左对齐,顶部对齐
属性 含义
layout_toRightOf 在指定控件的右边
layout_toLeftOf 在指定控件的左边
layout_above 在指定控件的上边
layout_below 在指定控件的下边
layout_alignBaseline 和指定控件水平对齐
layout_alignLeft 和指定控件左对齐
layout_alignRight 和指定控件右对齐
layout_alignTop 和指定控件顶部对齐
layout_alignBottom 和指定控件底部对齐
layout_alignParentLeft 是否和父元素左对齐
layout_alignParentRight 是否和父元素右对齐
layout_alignParentTop 是否和父元素顶部对齐
layout_alignParentBottom 是否和父元素底部对齐
layout_centerVertical 父元素中水平居中
layout_alignParentLeft 父元素中垂直居中
layout_centerInParent 父元素中居中

相对父控件

例:

几种布局的特性_第8张图片
代码部署
几种布局的特性_第9张图片
鸭姐未做设置默认做左边的朋友,阴婷人淡如菊在下面肛里见,淋淋不甘寂寞在右面寻找她的Mr.Q
相对指定控件

例:

几种布局的特性_第10张图片
代码部署

注:

萧亚轩的代码中既和Mr.Q左对齐,又和它右对齐,导致了萧亚轩的文本框整个被吸长(原本只是包裹内容),也就是说:宽度也是可以相对
android:layout_alignRight="@+id/jolin"
android:layout_alignLeft="@+id/jolin"

几种布局的特性_第11张图片
阴婷永远人淡如菊没动作

互相搭配即可完成简单相对布局

几种布局的特性_第12张图片
全家福惹

帧布局

  • 组件可以叠加
  • 所有组件默认位置:左对齐,顶部对齐
  • 布局方式和线性布局一样,但是帧布局没有方向

例:

几种布局的特性_第13张图片
代码部署
几种布局的特性_第14张图片
地才淋淋

表格布局

  • 一个TableRow节点是一行
  • TableRow中有几个子节点就是几列
  • 宽高可省略不设置(因为设置没用)
几种布局的特性_第15张图片
不全的代码
几种布局的特性_第16张图片
擦妈冠专确定!

绝对布局死了 NobodyCares

你可能感兴趣的:(几种布局的特性)