首页 技术 正文
技术 2022年11月14日
0 收藏 366 点赞 4,534 浏览 1934 个字

我学习android第一步接触的就是布局的学习。布局是androidUI的基础,是重中之重。总的来说android有6种布局,分别是线性布局LinearLayout、相对布局RelativeLayout、帧布局FrameLayout、绝对布局AbsoluteLayaout、表格布局TableLayout、网格布局GridLayout。我觉得开发过程中最常用的就是前三种,下面就来总结一下前三种布局的属性。

线性布局LinearLayout:

android:orientation 设置线性布局的走向:水平(horizontal),垂直(vertical)
垂直线性布局:每一行只能放一个控件,到底部放不下就会被挤出去,
水平线性布局:每一列只能放一个控件,到右边放不下就会被挤出去。
如果不设置该属性 默认为水平。

控件的宽高:
属性:match_parent/fill_parent 填充父窗体(fill_parent 已弃用)
wrap_content 包裹内容
绝对数字 例如150dp

background:设置背景颜色:

出现的位数: 3/4 6/8 ARGB (alpha(透明度) red green blue)

#00ffffff 完全透明
#ffffffff 完全不透明
#88ffffff 半透明

#fff 白色 ffffff
#000 黑色
#f00 红色
#0f0 绿色
#00f 蓝色
#ccc 灰色 333 666 999

属性:
android:layout_gravity(内对外的请求) 用于控件相对于外层容器的对齐方式
可选值:top, bottom, left(start),right(end),center_vertical垂直居中,center_horizontal水平居中,center水平垂直都居中。

注意:在垂直线性布局里面:top, bottom,center_vertical 无效center 在垂直方向无效。

水平线性布局里面: left(start),right(end),center_horizontal 无效,center在水平方向无效。

android:gravity(外对内的要求)控制视图容器内容物的位置 和本身的水平垂直属性不冲突

可选值:top, bottom, left(start),right(end),center_vertical垂直居中,center_horizontal水平居中,center水平垂直都居中。

layout_gravity:是定义控件位置。
gravity:是定义控件里面的内容的位置。如果定义在布局中,则整体控件按照其定义的位置放置。

权重:android:layout_weight 他是用于分配剩余空间的属性,
注意:
在水平方向设置权重:要把宽度设置为0dp ,
在垂直方向设置权重的时候要把 高度设置为0dp
如果设置wrap_content 会对权重有干扰

相对布局RelativeLayout:

属性主要分为四大类

1、相对于父元素:七个属性:
是否让控件相对于父元素顶部对齐:android:layout_alignParentTop
是否让控件相对于父元素底部对齐:android:layout_alignParentBottom
是否让控件相对于父元素左边对齐:android:layout_alignParentLeft
是否让控件相对于父元素右边对齐:android:layout_alignParentRight
全居中 :centerInParent
水平居中:layout_centerHorizontal
垂直居中:layout_centerVertical

2、相对于兄弟元素  4个
layout_above; 指定在那个控件的上侧
layout_below 指定在那个控件的下侧
android:layout_toLeftOf layout_toStartOf 指定在那个控件的左侧,api版本17推荐使用

android:layout_toRightOf layout_toEndOf 指定在那个控件的右侧,api版本17推荐使用

3、相对于兄弟元素的对齐方式
layout_alignLeft 该控件的左边与指定控件的左边对齐
layout_alignRight 该控件的右边与指定控件的右边对齐
layout_alignTop 该控件的上边沿与指定控件的上边沿对齐
layout_alignBottom 该控件的下边沿与指定控件的下边沿对齐

4、间隔
paddingXXX 内边距 (不指定方向,四周都有)
layout_marginXXX 外边距 (不指定方向,四周都有)

帧布局FrameLayout:

帧布局主要用于碎片fragment的主布局。

以上就是布局的学习内容,我认为难点在于线性布局中的layout_gravity和gravity

上一篇: vb.net下载代码
下一篇: three.js 相关概念
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,088
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,564
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,412
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,185
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,822
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,905