前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Android布局详解

Android布局详解

作者头像
全栈程序员站长
发布于 2022-09-05 03:25:48
发布于 2022-09-05 03:25:48
1.6K0
举报

大家好,又见面了,我是你们的朋友全栈君。

Android基本布局分别是:线性布局LinearLayout、相对布局RelativeLayout、帧布局FrameLayout、表格布局TableLayout、网格布局GridLayout。

其中,表格布局是线性布局的子类。网格布局是android 4.0后新增的布局。

普通视图还是布局都继承自 View ,其中 ViewGroup 就是所有布局的父类, ViewGroup 继承自 View 同时可以对 View 进行管理 ( 编排,控制 View 显示位置和大小 )主要掌握以下三种布局

LinearLayout(常用的布局) 线性布局,可以水平编排或者垂直编排孩子的显示 android:orientation=”vertical” 设置方向 vertical 垂直 ( 沿着 y 坐标 ) horizontal 水平方向(沿着 x 坐标) 线性布局中可以使用 android:layout_weight 属性设置权重,可以将 LinearLayout 中剩下的部分进行比例划分 LinearLayout 中如果需要使用占位视图可以使用 Space <Space android:layout_width=”1dp” android:layout_height=”0dp” android:layout_weight=”1″ />

LinearLayout 中使用 android:gravity 可以调整孩子的对齐方式,但是要注意方向,垂直的 ( 如果高不定 ) ,可以调整孩子在 left\centerhorizontal\right 如果是水平 ( 宽如果不定 ) 可以调整孩子在 top\centervertical\bottom

RelativeLayout 相对布局 第一种:子视图相对于父容器,取值为 true/false android:layout_alignParentLeft=”true” 靠父容器左侧 android:layout_alignParentRight=”true” 靠父容器右侧 android:layout_alignParentTop=”true” 靠父容器顶部 android:layout_alignParentBottom=”true” 靠父容器底部 android:layout_centerVertical=”true” 垂直居中 android:layout_centerInParent=”true” 居中 android:layout_centerHorizontal=”true” 水平居中 第二种:子视图之间相互参考,值对方视图的 id –> @id/xxx id 的声明: @+id/id 名称 如: @+id/tv_a id 的引用: @id/id 名称 如: @id/tv_a android:layout_toLeftOf 在谁的左侧 android:layout_toRightOf 在谁的右侧 android:layout_above 在谁的上面 android:layout_below 在谁的下面 android:layout_alignTop 顶部对齐 android:layout_alignLeft 左侧对齐 android:layout_alignRight 右侧对齐

android:layout_alignBottom 底部对齐

FrameLayout 帧布局 ( 框架布局 ) ,布局特性是所有孩子默认叠在该容器左上角 <FrameLayout xmlns:android=”http://schemas.android.com/apk/res/android” android:layout_width=”match_parent” android:layout_height=”match_parent” > <TextView android:layout_width=”200dp” android:layout_height=”50dp” android:background=”#55ff0000″ /> <TextView android:layout_width=”150dp” android:layout_height=”100dp” android:background=”#5500ff00″ /> <TextView android:layout_width=”100dp” android:layout_height=”150dp” android:background=”#550000ff” /> </FrameLayout> 其中孩子中可以使用 android:layout_gravity 来调整自己在父容器中的位置 ( 主动权在孩子身上 ) ,跟 android:gravity 不一样的是 android:gravity 主动权在父元素身上 <FrameLayout xmlns:android=”http://schemas.android.com/apk/res/android” android:layout_width=”match_parent” android:layout_height=”match_parent” > <TextView android:layout_width=”200dp” android:layout_height=”50dp” android:background=”#55ff0000″ android:text=”ABC” android:layout_gravity=”center” /> 设置该视图显示在 FrameLayout 正中间 … <TextView android:layout_width=”150dp” android:layout_height=”100dp” android:background=”#5500ff00″ android:layout_gravity=”right|bottom” /> 显示在右下角

</FrameLayout>

TableLayout

表格布局继承自LinearLayout,通过TableRow设置行,列数由TableRow中的子控件决定,

直接在TableLayout中添加子控件会占据整个一行。

TableLayout常用属性:

android:shrinkColumns:设置可收缩的列,内容过多就收缩显示到第二行

android:stretchColumns:设置可伸展的列,将空白区域填充满整个列

android:collapseColumns:设置要隐藏的列

列的索引从0开始,shrinkColumns和stretchColumns可以同时设置。

子控件常用属性:

android:layout_column:第几列

android:layout_span:占据列数

GridLayout(网格布局)

作为android 4.0 后新增的一个布局,与前面介绍过的TableLayout(表格布局)其实有点大同小异;

不过新增了一些东西

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

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

常用属性:

排列对齐:

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

②设置组件的对齐方式: android:layout_gravity=”” center,left,right,buttom

设置布局为几行几列:

①设置有多少行: 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列

最后说一点:

GridLayout是android 4.0 后才推出的,API Level 为 14

如果读者将布局设置为GridLayout时,会出现 莫名其妙的报错,

只需要将配置文件中的 MinSDK改成14或者以上版本 即可,保存

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/136976.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年6月2,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Android精通:TableLayout布局,GridLayout网格布局,FrameLayout帧布局,AbsoluteLayout绝对布局,RelativeLayout相对布局
TableLayout是将子类向分别排列成行和列的布局视图容器,TableLayout是由许多TableRow对象组成的,表格布局以行列的形式管理子控件,每一个单元是一个TableRow或者View对象。
达达前端
2019/07/03
4.2K0
Android精通:TableLayout布局,GridLayout网格布局,FrameLayout帧布局,AbsoluteLayout绝对布局,RelativeLayout相对布局
跟我学Android之六 布局
相对布局是一种通过设置相对位置进行的布局,相对布局使用<RelativeLayout>标签进行配置,对应代码中的类是android.widget.RelativeLayout,布局中的视图通过设置相互间的相对位置进行排列,相对的排列位置,相对的对齐方式;相对布局使用拖放式比较方便。
张哥编程
2024/12/17
1630
跟我学Android之六  布局
Android六大布局
Android六大布局 LinearLayout(线性布局) 常用属性 FrameLayout(帧布局) 常用属性 RelativeLayout(相对布局) 常用属性 AbsoluteLayout(绝对布局) 常用属性 TableLayout(表格布局) 常用属性 GridLayout(网格布局) 常用属性 TableLayout 和 GridLayout的区别 gravity和layout_gravity的区别 为什么 XML 资源文件要从文本格式编译成二进制格式 Android 资源管理框架又是如何快速
是阿超
2022/11/02
2.7K0
Android六大布局
Android 六大布局之 GridLayout(网格布局)「建议收藏」
1、GridLayout 布局是 Android 4.0 以后引入的新布局,和 TableLayout(表格布局) 有点类似,不过它功能更多,也更加好用
全栈程序员站长
2022/08/23
8.4K0
Android 六大布局之 GridLayout(网格布局)「建议收藏」
Android精通:View与ViewGroup,LinearLayout线性布局,RelativeLayout相对布局,ListView列表组件
对于Android应用程序中,所有用户界面元素都是由View和ViewGroup对象构建的。View是绘制在屏幕上能与用户进行交互的一个对象。而对于ViewGroup来说,则是一个用于存放其他View和ViewGroup对象的布局容器!
达达前端
2019/07/03
1.9K0
Android精通:View与ViewGroup,LinearLayout线性布局,RelativeLayout相对布局,ListView列表组件
Android入门教程 | UI布局之LinearLayout 线性布局
LinearLayout 里面可以放置多个 view(这里称为子view,子项)。 子 view 可以是TextView,Button,或者是 LinearLayout,RelativeLayout 等等。 它们将会按顺序依次排布为一列或一行。 接下来介绍一些在 xml 中的设置。
Android_anzi
2021/11/25
1.1K0
1.[Andriod]之Andriod布局 VS WinPhone布局
0.写在前面的话 近来被HTML+CSS的布局折腾的死去活来,眼巴巴的看着CSS3中的flex,grid等更便捷更高效的的布局方式无法在项目中应用,心里那叫一个窝火啊,去你妹的兼容性,,, 最近体验下Android开发,第一件事就是翻翻看安卓提供的布局方式方便不,因为笔者现在是做WP的,于是乎有了这篇比较两个平台提供的一些基础的布局方式的博文。 另外,安装完Android Studio后,在Android的SDK的目录下有一个docs的文件夹,这里面提供的有离线的官方文档。 Android应用在当前元素上的
blackheart
2018/01/19
1.3K0
1.[Andriod]之Andriod布局 VS WinPhone布局
六大布局之LinearLayout
Layout——界面布局,为应用程序提供界面架构。控制Activity中控件的大小、位置、颜色等属性的方法.
下码看花
2019/09/02
1.1K0
六大布局之LinearLayout
六大布局之非常用布局
Hi,大家好,新的一周开始啦,让我们继续遨游在Android的知识海洋中吧!上一次我们讲到了RelativeLayout,相信不少小伙伴已经着手实战,那么今天我们为大家带来六大布局中剩下的三个布局。本篇文章可以和前面的FrameLayout一同归类到Android非常用布局之中,虽然不常用,但是小伙伴们也要知道它的一些基础属性哦~
下码看花
2019/09/02
1.6K0
六大布局之非常用布局
Android Notes|细数「八大布局」那些事儿
做 Android 好几年了,从单纯的 Android,到现在大杂烩,这个滋味儿,真的是百感交汇。
贺biubiu
2020/11/25
1.9K0
Android Notes|细数「八大布局」那些事儿
A019-布局之GridLayout
网格布局,是Android4.0之后的API才提供的,算是一个相对新的布局容器,它的用法也很简单,类似LinearLayout可以指定方向,也可以指定控件占用多少行或列的空间。
巫山老妖
2018/07/23
4710
A019-布局之GridLayout
新推出的GridLayout网格布局
本期主要学习的是网格布局是Android 4.0新增的布局,和前面所学的TableLayout表格布局 有点类似,不过他有很多前者没有的东西,也更加好用。 一、认识GridLayout 网格布局实现了控件的交错显示,能够避免因布局嵌套对设备性能的影响,更利于自由布局的开发。网格布局用一组无限细的直线将绘图区域分成行、列和单元,并指定控件的显示区域和控件在该区域的显示方式 下表显示了 GridLayout常用的XML属性及相关方法说明。 XML属性相关方法说明android:align
分享达人秀
2018/02/02
1.5K0
新推出的GridLayout网格布局
android常用布局详解「建议收藏」
在一个Android应用程序中,用户界面通过View和ViewGroup对象构建。Android中有很多种View和ViewGroup,他们都继承自View类。View对象是Android平台上表示用户界面的基本单元。
全栈程序员站长
2022/09/05
2.1K0
android常用布局详解「建议收藏」
Android开发之基本控件和详解四种布局方式
Android中的控件的使用方式和iOS中控件的使用方式基本相同,都是事件驱动。给控件添加事件也有接口回调和委托代理的方式。今天这篇博客就总结一下Android中常用的基本控件以及布局方式。说到布局方式Android和iOS还是区别挺大的,在iOS中有Frame绝对布局和AutoLayout相对布局。而在Android中的布局方式就比较丰富了,今天博客中会介绍四种常用的布局方式。先总结一下控件,然后再搞一搞基本方式,开发环境还是用的Mac下的Android Studio。开始今天的正题, 虽然Android
lizelu
2018/01/11
1.8K0
Android开发之基本控件和详解四种布局方式
Android入门教程(三)
FrameLayout 布局的使用效果,就是所有布局里的控件都会自动往左上角放置。所有的元素都会依次覆盖上一次的元素。那么我们现在写代码试试看:
达达前端
2022/04/28
6720
Android入门教程(三)-安卓UI文档教程
对Android五大布局的描述,分别是 FrameLayout (框架布局),LinearLayout (线性布局),AbsoluteLayout (绝对布局),RelativeLayout (相对布局),TableLayout (表格布局)。
达达前端
2022/04/28
6360
Android开发第二次课 布局方式
xmlns:android:声明一个命名空间前缀,叫作android,http://schemas.android.com/apk/res/android,
张哥编程
2024/12/19
660
速读原著-Android应用开发入门教程(布局(Layout))
布局(Layout)是各个控件在屏幕上的位置关系,视图组的几个扩展类与布局相关。在 Android 中布局通常有以下几种不同的情况:
cwl_java
2020/02/13
8800
【Android从零单排系列二十九】《Android布局介绍——LinerLayout》
小伙伴们,在前面的系列文章中,我们重点介绍了Android开发中用到的视图组件,从本文开始我们继续盘点Android中的布局,本文主要介绍一下LinerLayout。
再见孙悟空_
2023/07/17
3010
Android应用开发之线性布局
既然是线性排列,肯定就不仅只有一个方向,这里一般只有两个方向:水平方向和垂直方向。
李小白是一只喵
2022/03/21
6700
推荐阅读
相关推荐
Android精通:TableLayout布局,GridLayout网格布局,FrameLayout帧布局,AbsoluteLayout绝对布局,RelativeLayout相对布局
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档