Android Studio中的布局讲解

news2024/12/24 20:24:54

文章目录

  • 1.LinearLayout(线性布局)
  • 2.RelativeLayout(相对布局)
    • 相对于兄弟元素:
    • 相对于父元素
    • 对齐方式
    • 间隔
  • 3.GridLayout(网格布局)
    • 设置最大列数
    • 设置最大行数
    • 指定控件的位置
  • 4.FrameLayout(帧布局)

1.LinearLayout(线性布局)

LinearLayout是一个视图容器,用于使所有子视图在单个方向(垂直或水平)保持对齐,默认是控件(子视图)水平方向排列。
可以视图容器标签内使用android:orientation属性指定布局方向。
android:orientation="horizontal"时,也是此属性的默认值

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <Button
        android:text="1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        />
    <Button
        android:text="2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        />
    <Button
        android:text="3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        />
</LinearLayout>

在这里插入图片描述
当android:orientation="vertical"时
在这里插入图片描述
可以给视图控件设置布局权重android:layout_weight,通过给子视图设置权重值,来分配子视图所占控件的权重(比例),详看我另一篇博客:详细介绍布局权重属性

2.RelativeLayout(相对布局)

RelativeLayout也是一个视图容器。
这意味着其中的所有控件如果不进行具体的位置确定,都将汇集在左上角,存在叠图现象。
相对布局:子视图可通过设置相应的布局属性,设定相对于另一个兄弟视图或父容器视图的相对位置
属性说明:

相对于兄弟元素:

属性名称属性含义
android:layout_below=“@id/aaa”在指定View的下方
android:layout_above=“@id/aaa”在指定View的上方
android:layout_toLeftOf=“@id/aaa”在指定View的左边
android:layout_toRightOf=“@id/aaa”在指定View的右边
android:layout_alignTop=“@id/aaa”与指定View的上边界一致
android:layout_alignBottom=“@id/aaa”与指定View下边界一致
android:layout_alignLeft=“@id/aaa”与指定View的左边界一致
android:layout_alignRight=“@id/aaa”与指定View的右边界一致

相对于父元素

属性名称属性含义
android:layout_alignParentLeft=“true”在父元素内左边
android:layout_alignParentRight=“true”在父元素内右边
android:layout_alignParentTop=“true”在父元素内顶部
android:layout_alignParentBottom=“true”在父元素内底部

对齐方式

属性名称属性含义
android:layout_centerInParent=“true”居中布局
android:layout_centerVertical=“true”垂直(竖向)居中布局
android:layout_centerHorizontal=“true”水平(横向)居中布局

间隔

属性名称属性含义
android:layout_marginBottom=“”指定该属性所在控件距下部最近控件(父容器视图或兄弟视图)的最小值
android:layout_marginLeft=“”指定该属性所在控件距左边最近控件(父容器视图或兄弟视图)的最小值
android:layout_marginRight =“”指定该属性所在控件距右边最近控件(父容器视图或兄弟视图)的最小值
android:layout_marginTop=“”指定该属性所在控件距上部最近控件(父容器视图或兄弟视图)的最小值
android:layout_paddingBottom=“”往内部元素底边缘填充距离
android:layout_paddingLeft=“”往内部元素左边缘填充距离
android:layout_paddingRight =“”往内部元素右边缘填充距离
android:layout_paddingTop=“”往内部元素右边缘填充距离

代码:

<?xml version="1.0" encoding="utf-8"?>
<!--相对布局-->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <!--解决Button上的英文字符全部变成了大写
        android:textAllCaps="false"
    -->
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="左边\nLeft"
        android:textAllCaps="false"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        />
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="顶部\nTop"
        android:textAllCaps="false"
        android:layout_alignParentTop="true"
        android:layout_centerInParent="true"
        />
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="右边\nRight"
        android:textAllCaps="false"
        android:layout_alignParentTop="true"
        android:layout_alignParentRight="true"
        />
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:text="竖直居中\ncenterVertial"
        android:textAllCaps="false"
        android:layout_centerVertical="true"
        />
    <Button
        android:id="@+id/centerInParent"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="中央位置\ncenterInParent"
        android:textAllCaps="false"
        android:layout_centerInParent="true"
        />
    <Button
        android:layout_below="@id/centerInParent"
        android:layout_marginTop="50dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="水平居中\ncenterHorizonal"
        android:textAllCaps="false"
        android:layout_centerInParent="true"
        android:layout_centerVertical="true"
        />
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="底部\nButton"
        android:textAllCaps="false"
        android:layout_alignParentBottom="true"
        android:layout_centerInParent="true"
        />
</RelativeLayout>

效果:
在这里插入图片描述
解释:
在这里插入图片描述

3.GridLayout(网格布局)

网络布局:默认情况下所有控件,显示到一列里面,水平排列。
在这里插入图片描述
常见属性:

属性名称属性含义
android:columnCount最大列数(表示每行不一定都达到最大列数)
android:rowCount最大行数(表示每列不一定都达到最大行数)
android:layout_columnSpan横跨的列数
android:layout_rowSpan横跨的行数

设置最大列数

在这里插入图片描述

<?xml version="1.0" encoding="utf-8"?>
<!--网格布局-->
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:columnCount="3"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >
    <Button
      android:text="1"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
    />
    <Button
        android:text="2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
    />
    <Button
        android:text="3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
     />
    <Button
        android:text="4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
    />
    <Button
        android:text="5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
    />

</GridLayout>

设置最大行数

在这里插入图片描述
代码:

<?xml version="1.0" encoding="utf-8"?>
<!--网格布局-->
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:rowCount="3"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >
    <Button
      android:text="1"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
    />
    <Button
        android:text="2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
    />
    <Button
        android:text="3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
     />
    <Button
        android:text="4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
    />
    <Button
        android:text="5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
    />

</GridLayout>

指定控件的位置

在这里插入图片描述
代码:

<?xml version="1.0" encoding="utf-8"?>
<!--网格布局-->
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >
    <Button
      android:text="1"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
    />
    <Button
        android:text="2"
        android:layout_row="1"
        android:layout_column="0"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
    />
    <Button
        android:text="3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
     />
    <Button
        android:text="4"
        android:layout_row="2"
        android:layout_column="1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
    />
    <Button
        android:text="5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
    />

</GridLayout>

在这里插入图片描述

<?xml version="1.0" encoding="utf-8"?>
<!--网格布局-->
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >
    <Button
      android:text="1"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
    />
    <Button
        android:text="2"
        android:layout_row="1"
        android:layout_column="0"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
    />
    <Button
        android:text="3"
        android:layout_row="0"
        android:layout_column="1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
     />
    <Button
        android:text="4"
        android:layout_columnWeight="1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
    />
    <Button
        android:text="5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
    />

</GridLayout>

在这里插入图片描述
代码:

<?xml version="1.0" encoding="utf-8"?>
<!--网格布局-->
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >
    <Button
      android:text="1"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
    />
    <Button
        android:text="2"
        android:layout_row="1"
        android:layout_column="0"
        android:layout_columnSpan="3"
        android:layout_gravity="fill"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
    />
    <Button
        android:text="3"
        android:layout_row="0"
        android:layout_column="1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
     />
    <Button
        android:text="4"
        android:layout_rowWeight="1"
        android:layout_columnWeight="1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
    />
    <Button
        android:text="5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
    />

</GridLayout>

4.FrameLayout(帧布局)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/531789.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

包管理工具:pnpm | 京东云技术团队

作者&#xff1a;京东零售 杨秀竹 pnpm 是什么 pnpm&#xff08; performant npm &#xff09;指的是高性能的 npm&#xff0c;与 npm 和 yarn 一样是一款包管理工具&#xff0c;其根据自身独特的包管理方法解决了 npm、yarn 内部潜在的安全及性能问题&#xff0c;在多数情况…

耗子叔-我的互联网引路人

早上一早看到各大程序员群提到左耳朵耗子-陈皓&#xff0c;因为心梗辞世的信息&#xff0c;真的让人难以置信&#xff0c;因为据我所知他还不到50。 虽然我从来没见过他&#xff0c;交谈也很少&#xff0c;但是我知道他的情况&#xff0c;知道他的公司&#xff0c;知道他的好恶…

不要再问我加密的问题了,使用crypto-js中的AES加密方法,连续多次加密/解密,注意事项

每日鸡汤&#xff0c;每个你想要学习的念头&#xff0c;都是未来的你向自己求救 需求&#xff1a;有一段字符串text&#xff0c;有3个key&#xff0c;后端用这三个key一次加密&#xff1b;然后把加密后的字符串返回给前端&#xff0c;前端用这3个key依次解密&#xff0c;得到原…

剖析:在线帮助中心对企业能够起到什么作用?

随着互联网技术的不断发展和普及&#xff0c;越来越多的企业开始将自己的业务转移到了线上。这种转移不仅能够大幅度提高企业的效率&#xff0c;还能够让企业的服务更加贴近用户的需求。然而&#xff0c;在线服务也存在着一些问题&#xff0c;比如用户可能会遇到一些困难&#…

大人,时代变了!缺少成本票可不能买发票啊,是有办法的!

业务是流程&#xff0c;财税是结果&#xff0c;税收问题千千万&#xff0c;关注《税算盘》来帮你找答案。 企业所得税和增值税一样&#xff0c;都是我国重要的税收之一。企业所得税征收对象为企业的利润部分&#xff0c;再度细分就与企业的成本票有关。 企业所得税高是如今众…

电商系统分类树查询功能优化方案总结

前言 分类树查询功能&#xff0c;在各个业务系统中可以说随处可见&#xff0c;特别是在电商系统中。 但就是这样一个简单的分类树查询功能&#xff0c;我们却优化了5次。 到底是怎么回事呢&#xff1f; 背景 我们的网站使用了SpringBoot推荐的模板引擎&#xff1a;Thymelea…

案例5:Java大学生创新创业项目管理设计与实现任务书

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

RK3568|3588|3566处理器属于什么档次?

随着科技的迅猛发展&#xff0c;处理器作为计算机和电子设备的核心组件&#xff0c;其性能的提升对于设备的功能和用户体验起着至关重要的作用。在处理器市场中&#xff0c;不同的处理器被划分为不同的档次&#xff0c;以便用户能够更好地选择适合自己需求的产品。那么&#xf…

解决git clone与git push出现的若干问题:Failed to connect to github.com port 443: Timed out

1 连接github失败问题汇总&#xff1a;Failed to connect to github.com port 443: Timed out 1.1 解决ping不通github.com的问题 1.1.1 查询github的IP的地址 在以下链接找到网页显示github的ip地址http://github.global.ssl.fastly.net.ipaddress.com/&#xff0c;如图所示…

FSW26现金回收RS FSW43 信号和频谱分析仪

Rohde & Schwarz FSW26信号和频谱分析仪&#xff0c;2 Hz - 26.5 GHz 高性能 Rohde & Schwarz (R&S) FSW26 信号和频谱分析仪专为方便、准确和快速而设计。其独特的触摸屏、直观的多视图结果显示和优化的用户指南使 R&S FSW26 分析仪的操作高效方便。凭借其无…

玩转ChatGPT:AskYourPDF插件尝鲜

一、写在前面 首先&#xff0c;吐槽一下&#xff0c;感觉被CloseAI耍了&#xff1a; 上周发文说这一周对PLUS开放联网和插件功能&#xff0c;搞得网络一片狂欢。但是今天通过身边统计学发现&#xff0c;开通了PLUS后&#xff0c;拥有联网和插件功能的只是少数&#xff08;而且…

TCP连接不释放,应用产生大量CLOSE_WAIT状态TCP

一、起源 23年元旦期间&#xff0c;大家都沉浸在一片祥和的过节气氛当中。 “滴滴滴”&#xff0c;这头同事的电话响起&#xff0c;具体说些什么我也没太在意&#xff0c;但见同事接完电话之后展现出了一副懊恼夹杂着些许不耐烦的表情。 我不解问道&#xff1a;“怎么了&…

扇区(sector),块(block),簇(cluster)

1.硬盘(可以认为硬盘就是磁盘) # fdisk -l Disk /dev/cciss/c0d0: 146.7 GB, 146778685440 bytes 255 heads, 63 sectors/track, 17844 cylinders Units cylinders of 16065 * 512 8225280 bytes 可以看到几个名词&#xff1a;heads/sectors/cylinders&#xff0c;分别就是磁…

altium Designer22 AD22 CAD电子绘图员三级知识点操作说明

文章目录 AD22一、解决局域网中多台电脑冲突&#xff1a;禁用license的网络功能二、添加库文件三、库的使用四、库绘制1、原理图库绘制2、PCB封装库绘制 五、动态标题栏六、原理图模板的使用七、层次电路图设计1、在母图上放置页面符2、给sheet symbol添加Entry,名字与子图原理…

案例4:Java宠物管理系统设计与实现开题报告

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

后端返回文件流,前端实现点击按钮自动导出Excel文件

首先封装接口&#xff0c;此接口需要传Excel目标数据中的主键id&#xff0c;注意要加上responseType: blob import request from /utils/request; const prefix xxxxx /test;export async function exportExcel(id: any) {return request(prefix /export-excel/ id,{metho…

同科医药×实在智能丨数字员工“进驻”上市企业,让健康服务更近、更快、更优惠!

数字化浪潮构成了新世界跳动的脉搏&#xff0c;在医药行业转型的大环境下&#xff0c;实现数字化升级已经成为医药企业走向未来、拓展全球市场的必由之路。 近日&#xff0c;济南同科医药物流有限公司&#xff08;简称“同科医药”&#xff0c;系同科股份全资子公司&#xff0c…

用“平面两点距离”求三角形面积及多边形面积

大于 32 边的多边形&#xff0c;都可以任一顶点发出的边切分为 n-2 个三角形。 【学习的细节是欢悦的历程】 Python 官网&#xff1a;https://www.python.org/ Free&#xff1a;大咖免费“圣经”教程《 python 完全自学教程》&#xff0c;不仅仅是基础那么简单…… 地址&#…

IIC通信理解

前言 就个人对IIC通信的理解&#xff0c;通过用图文的方式&#xff0c;尽量简洁的记录下此文。希望能对大家理解IIC通信协议有所帮助。 理解IIC 对于IIC协议的理解&#xff0c;我个人是将完整的IIC时序协议&#xff0c;分成六大块理解。分别是开始条件,结束条件,发送字节,发送字…

数智赋能,专精特新 | 数说故事揽获多项荣誉认定

迈进2023崭新的节点&#xff0c; 数说故事秉持着数据驱动智能决策的使命&#xff0c; 专精特新&#xff0c;砥砺深耕&#xff0c; 拥抱大模型&#xff0c;算法技术迈上新台阶&#xff1b; 推陈出新&#xff0c;产品线持续迭代升级&#xff1b; 以行业领先的技术、专业的数…