Android布局

本文详细介绍了Android的几种布局方式,包括LinearLayout的属性,如orientation、width、height、background和gravity,以及RelativeLayout的布局规则和属性,如居中、对齐等。此外,还提及了FrameLayout和TableLayout的特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.LinearLayout(线性布局):

LinearLayout又称作线性布局,是一种非常常用的布局。正如它的名字所描述的一样,这个布局会将它所包含的控件在线性方向上依次排列。既然是线性排列,肯定就不仅只有一个方向,这里一般只有两个方向:水平方向和垂直方向。

下面我们将LinearLayout(线性布局)常用到的属性简单归纳一下:

属性1:android:orientation 指定线性布局的方向(水平或者垂直)

属性2:android:width 线性布局的容器宽度

属性3:android:height 线性布局的容器高度

属性4:android:background 线性布局的背景

属性5:android:gravity 线性布局中,子容器相对于父容器所在的位置

1属性值:

android:orientation=“horizontal” 指定线性布局方向:水平

android:orientation=“vertical” 指定线性布局方向:垂直

2.属性值:

android:width=“xxxdp” 指定线性布局的容器宽度为:xxxdp

android:width=“wrap_content” 指定线性布局的容器宽度为:根据容器内容宽度大小来填充屏幕宽度

android:width=“match_parent” 指定线性布局的容器宽度为:撑满整个屏幕宽度

3.属性值:

android:height=“xxxdp” 指定线性布局的容器高度为:xxxdp

android:height=“wrap_content” 指定线性布局的容器高度为:根据容器内容高度大小来填充屏幕高度

android:height=“match_parent” 指定线性布局的容器高度为:撑满整个屏幕高度

4.属性值:

android:background="#000" 指定线性布局的背景为:黑色(rgb颜色)

android:background="@android:color/black" 指定线性布局的背景为:黑色(引用android系统自带的原始黑色)

andrid:backgrund="@color/colorPrimary" 指定线性布局的背景为:(根据res/color.xml 中的colorPrimary所定义的颜色设置)

5属性值:

android:gravity=“center” 指定线性布局中,子容器相对于父容器所在的位置为:正中心

android:gravity=“cente_verticalr” 指定线性布局中,子容器相对于父容器所在的位置为:垂直方向的正中心

android:gravity=“center_horizontal” 指定线性布局中,子容器相对于父容器所在的位置为:水平方向的正中心

android:gravity=“left” 指定线性布局中,子容器相对于父容器所在的位置为:最左边(默认)

android:gravity=“right” 指定线性布局中,子容器相对于父容器所在的位置为:最右边

android:gravity=“top” 指定线性布局中,子容器相对于父容器所在的位置为:最上方(默认)

android:gravity=“bottom” 指定线性布局中,子容器相对于父容器所在的位置为:最下方

<LinearLayout
            android:id="@+id/lll"
            android:layout_width="300dp"
            android:layout_height="300dp"
            android:background="#000000"
            android:orientation="vertical"
            android:gravity="center"         //布局内距离布局的位置,居中,居上,据左,居右,居下
            android:layout_margin="20dp"     //布局距离其他布局的距离
            android:paddingLeft="20dp"       //布局内距离布局左边距离
            android:paddingRight="30dp"      //布局内距离布局右边距离
            android:paddingTop="100dp"       //布局内距离布局上边距离
            android:paddingBottom="10dp">    //布局内距离下局左边距离


        <View android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:background="#FF0033">
        </View>

    </LinearLayout>

6属性值:
android:layout_weight=“1” 权重,如果权重相等就会评分布局,如果权重不相等,会将权重值相加,分别占据各自权重的布局
再分配权重的时候会优先将本身的长宽去除后在将剩余的按权重分配
在这里插入图片描述

2.RelativeLayout(相对布局):

其常用的一些属性:

第一类:属性值为true或false
android:layout_centerHrizontal 水平居中
android:layout_centerVertical 垂直居中
android:layout_centerInparent 相对于父元素完全居中
android:layout_alignParentBottom 贴紧父元素的下边缘
android:layout_alignParentLeft 贴紧父元素的左边缘
android:layout_alignParentRight 贴紧父元素的右边缘
android:layout_alignParentTop 贴紧父元素的上边缘
android:layout_alignWithParentIfMissing 如果对应的兄弟元素找不到的话就以父元素做参照物

第二类:属性值必须为id的引用名“@id/id-name”
android:layout_below 在某元素的下方
android:layout_above 在某元素的的上方
android:layout_toLeftOf 在某元素的左边
android:layout_toRightOf 在某元素的右边

android:layout_alignTop 本元素的上边缘和某元素的的上边缘对齐
android:layout_alignLeft 本元素的左边缘和某元素的的左边缘对齐
android:layout_alignBottom 本元素的下边缘和某元素的的下边缘对齐
android:layout_alignRight 本元素的右边缘和某元素的的右边缘对齐
第三类:属性值为具体的像素值,如30dip,40px
android:layout_marginBottom 离某元素底边缘的距离
android:layout_marginLeft 离某元素左边缘的距离
android:layout_marginRight 离某元素右边缘的距离
android:layout_marginTop 离某元素上边缘的距离

1)padding值设置的是控件里的内容距控件边上的距离。

2)当控件里面的内容不能占据整个控件时,padding是以左上角为准设置。

3)当paddingBottom、paddingTop、paddingLeft、paddingRight设置的值相同时,可以使用padding属性代替。

4)当padding值设置的大小大于等于屏幕的宽度的一般时,或者paddingLeft+paddingRight大于等于屏幕的宽度时,控件中的内容会被挤的显示不出来。(这里默认认为手机屏幕的宽度小于手机屏幕的高度)
————————————————
版权声明:本文为优快云博主「刘洋浪子」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/yangshuangyue/article/details/53115432

3.FrameLayout(帧布局):

帧布局的子控件都是一层一层向上叠加的(例如:视频播放软件)

4.TableLayout(表格布局):

TableLayout是继linearLayout布局的另一种布局方式,这中布局方式的优点就是布出来的局特别规整,行是行,列是列的。

你可以在自己脑海中脑补一下 把TableLayout想象成一个表格,你可以在表格中写入数据,控件。无需再去做对齐设置就能使内容很有次序感。

TableRow标签是TableLayout里面的行

可以参考下列代码:

<Tablelayout xmlns:android=“http://schemas.android.com/apk/res/android”

android:layout_width=“fill_parent”

android:layout_height=“fill_parent”

在我们学习TableLayout的过程中 需要注意以下几点:

1,参考上列 在TableRow中我没有使用layout_width和layout_height,因为在TableRow标签中这

两个属性是没有意义的,不管你写哪一个,它自己本身默认的都是“wrap_content”。因此大多时候都不设置这个属性。

2,在一个表格中有很多行,所以我们在书写代码的时候最好能养成一个良好的习惯,把每行的代码对齐缩进。

这样我们看代码的时候会一目了然。

3,像Android:backgroud设置底色的属性,Android:gravity设置对齐方式的属性 以及设置组件的距离等这些属性还是可以在TableRow标签中使用的。

4,如果某一个控件没有被包含在TableRow标签中 ,那么它会自成一行。

5,如果想让TableRow中的所有组件依照比例使用整个Table的宽度,可以借助Android:layout_weight属性,它会将同一行的所有组件的weight值加总后,再依照每个组件的weight值的比例计算所占的宽度。

6,TableLayout中的所有TableRow组件都是对齐的 ,无法错开的。如果想要错开的效果,可以在TableLayout中再嵌套一个Tablelayout 。

5.AbsoluteLayout(绝对布局):

因为绝对布局会将每个控件之间的位置写死,所以不会适配不同大小的屏幕,所以已经被开发人员抛弃

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值