今天来分享一下安卓开发布局中的四种布局:线性布局、表格布局、网格布局以及帧布局。

先来说说线性布局(Linerlayout):

线性布局的特点是:各个子元素彼此连接,中间不留空白线性布局是程序中最常见的一种布局方式,线性布局可以分为水平线性布局和垂直线性布局两种,通过Android:orientation属性可以设置线性布局的方向。

线性布局中,有 几个及其重要的参数,直接决定元素的布局和位置,这几个参数是

android:layout_gravity ( 是本元素相对于父元素的对齐方式 )

android:gravity="bottom|right"(是本元素所有子元素的对齐方式,设置在父元素上,多个值用|隔开)

android:layout_gravity (子元素在父元素的对齐方式,设置在子元素上)

当 android:orientation="vertical"  时, 只有水平方向的设置才起作用,垂直方向的设置不起作用。即:left,right,center_horizontal 是生效的。
当 android:orientation="horizontal" 时, 只有垂直方向的设置才起作用,水平方向的设置不起作用。即:top,bottom,center_vertical 是生效的。

android:padding="10dp" (是本元素所有子元素的与父元素边缘的距离,设置在父元素上)

android:layout_marginLeft="10dp"(子元素与父元素边缘的距离,设置在子元素上)

android:orientation (线性布局以列或行来显示内部子元素)

android:layout_weight ="1"(线性布局内子元素对未占用空间【水平或垂直】分配权重值,其值越小,权重越大。

前提是子元素 设置了 android:layout_width = "fill_parent" 属性(水平方向)或 android:layout_height = "fill_parent" 属性(垂直方向)如果某个子元素的 android:layout_width = "wrap_content" 或 android:layout_height =" wrap_content” 则 android:layout_weight 的设置值 对该方向上空间的分配刚好相反。

表格布局(Tablelayout):

表格布局模型以行列的形式管理子控件,每一行为一个TableRow的对象,当然也可以是一个View的对象。TableRow可以添加子控件,每添加一个为一列。

TableLayout属性:

  android:collapseColumns:将TableLayout里面指定的列隐藏,若有多列需要隐藏,请用逗号将需要隐藏的列序号隔开。

  android:stretchColumns:设置指定的列为可伸展的列,以填满剩下的多余空白空间,若有多列需要设置为可伸展,请用逗号将需要伸展的列序号隔开。

  android:shrinkColumns:设置指定的列为可收缩的列。当可收缩的列太宽(内容过多)不会被挤出屏幕。当需要设置多列为可收缩时,将列序号用逗号隔开。

 列元素(Button)属性:(奇怪的是button 里面没有android:layout_column 和android:layout_span两个属性,写进去无反应,还不知道为什么)

  android:layout_colum:设置该控件在TableRow中指定的列

  android:layout_span:设置该控件所跨越的列数

网格布局(Gridlayout):

①跟LinearLayout(线性布局)一样,他可以设置容器中组件的对齐方式

②容器中的组件可以跨多行也可以跨多列(相比TableLayout直接放组件,占一行相比较)

常用属性:

排列对齐:

①设置组件的排列方式:   android:orientation=""     vertical(竖直,默认)或者horizontal(水平)

②设置组件的对齐方式:   android:layout_gravity=""   center,left,right,buttom啊,这些,如果想同时用两种的话:eg: buttom|left

设置布局为几行几列:

①设置有多少行: android:rowCount="4"        //设置网格布局有4行

②设置有多少列: android:columnCount="4"    //设置网格布局有4列

设置某个组件位于几行几列

注:都是从0开始算的哦!

①组件在第几行: android:layout_row = "1"   //设置组件位于第二行

②组件在第几列: android:layout_column = "2"   //设置该组件位于第三列

设置某个组件横跨几行几列:

①横跨几行: android:layout_rowSpan = "2"     //纵向横跨2行

②横跨几列: android:layout_columnSpan = "3"     //横向横跨2列

帧布局:

FrameLayout(帧布局)可以说是六大布局中最为简单的一个布局,这个布局直接在屏幕上开辟出一块空白的区域,当我们往里面添加控件的时候,会默认把他们放到这块区域的左上角,而这种布局方式却没有任何的定位方式,所以它应用的场景并不多;帧布局的大小由控件中最大的子控件决定,如果控件的大小一样大的话,那么同一时刻就只能看到最上面的那个组件!后续添加的控件会覆盖前一个!虽然默认会将控件放置在左上角,但是我们也可以通过layout_gravity属性,指定到其他的位置!

常用属性

FrameLayout的属性很少就两个,但是在说之前我们先介绍一个东西:

前景图像:永远处于帧布局最上面,直接面对用户的图像,就是不会被覆盖的图片。

两个属性:

  • android:foreground:*设置改帧布局容器的前景图像
  • android:foregroundGravity:设置前景图像显示的位置

Android_布局相关推荐

  1. Android_布局2

    今天来分享一下后面三个布局: 相对布局(RelativeLayout): 相对布局 RelativeLayout 允许子元素指定它们相对于其父元素或兄弟元素的位置,这是实际布局中最常用的布局方式之一. ...

  2. android比较常用的布局,Android_九宫图比较常用的多控件布局(GridView)使用介绍,GridView跟ListView都是比较常用的 - phpStudy...

    九宫图比较常用的多控件布局(GridView)使用介绍 GridView跟ListView都是比较常用的多控件布局,而GridView更是实现九宫图的首选!本文就是介绍如何使用GridView实现九宫 ...

  3. java中android_在Android中用纯Java代码布局

    本文的完成了参考了一篇国外的教程,在此表示感谢. Android中的界面布局主要有两种方式,一种是xml文件和Java代码结合的布局方式,一种是完全依靠Java代码布局. 两种布局方式的比较 对于第一 ...

  4. android 绘制控件,Android_开发_Day29_自己绘制控件

    Android_开发Day29自己绘制控件 目的: 在Android中很多时候系统的控件是不能满足需要的,组合方式定义控件又非常繁琐,因此此时需要自己画一个控件,才能满足需要 技术: <1> ...

  5. android开发图案解锁,Android_开发_Day23_图案解锁(下)

    Android_开发Day23图案解锁 目的: 综合运用Java以及C语言的思想来解决问题 技术: <1> onTouchEvent: onTouchEvent方法是当屏幕被触摸时系统调用 ...

  6. 点击改变div高度_css实现div两列布局(两种方法)

    一.应用场景 左侧一个导航栏宽度固定,右侧内容根据用户浏览器窗口宽度进行自适应 二.思路 首先把这个问题分步解决,需要攻克以下两点: 1.让两个div并排到一行 2.让一个div宽度固定,另个div占 ...

  7. Android布局优化之include、merge、ViewStub

    include:引入重复使用的相同布局 merge:减少include布局的层级,将子元素直接添加到merge标签的parent中 ViewStub:其实就是一个宽高都为0的一个View,它默认是不可 ...

  8. Laravel Dcat-admin 详情页多栏布局开发

    背景 随着 dcat-admin 越来越多的人使用,相信有许多跟我一样热爱这个项目的的人最后也会参与到这个项目中来,从使用者到项目的维护者,可以为项目贡献一份自己的力量.我以后也会将维护这个项目的一些 ...

  9. [JAVA EE] Thymeleaf 高级用法:模板布局,带参数的引用片段,表单验证,常用校验注解

    模板布局 公共部分通常定义为模板布局:如页眉,页脚,公共导航栏.菜单等. 模板布局定义方法 布局页中用 th:fragment 定义模板片段,其他页面用 th:insert 引用片段 例如:foote ...

最新文章

  1. RHEL5 Silent方式安装Oracle 11gR2指南
  2. 《Windows PowerShell实战指南(第2版)》——1.5 安装Windows PowerShell
  3. 以太网端口类型和可插拔模块揭密
  4. zcmu-2153(拓扑排序+优先队列)
  5. android ApiDemos学习1 主界面动态ListView显示
  6. cf 786 B 线段树优化建图
  7. 无状态Spring安全性第2部分:无状态身份验证
  8. 数据预处理第3讲:归一化与离散化
  9. 华为的CPU怎样才能卖掉
  10. stvp打不开iar生成的hex文件
  11. Ectiture impossible,doublon dans une cle de la错误
  12. ‘在路上’问卷调查结果与分析
  13. python爬虫——正则表达式
  14. 主题:EXE + BPL + DLL + Interface实现插件式客户端解决方案
  15. 元账户层是进入Web3元宇宙的传送门
  16. 监控域名证书到期时间
  17. 【Bug】HTC Vive Pro安装到支架上之后,VR头盔和手柄老是容易飘,定位不稳定问题
  18. Python3 快速入门(一)
  19. 假期第一天,爬上来唠唠嗑
  20. python web flask 立项

热门文章

  1. 张老师你好。关于培训我想问一些问题。
  2. python学生成绩管理系统实验报告心得_成绩管理系统心得体会(精选多篇)
  3. Android API Level与sdk版本对照表
  4. html中相对定位怎么写,html中相对定位与绝对定位
  5. 如何使用cmd进入打印机选项_怎么用cmd运行功能添加WiFi打印机
  6. 关于使用ADC测量内部电压犯的蠢
  7. VS2019/MFC编程入门之对话框:向导对话框的创建及显示
  8. for循环和增强版的for循环
  9. lapack安装 matlab,调用 LAPACK 和 BLAS 函数
  10. Leetcode 788: Rotated Digits