安卓六大布局

news2024/11/18 16:30:40

LinearLayout(线性布局)

1.简介
  • 线性布局在开发中使用最多,具有垂直方向与水平方向的布局方式。
  • LinearLayout 默认是垂直排列的,但是可以通过设置 android:orientation 属性来改变为水平排列。
2.常用属性
  • orientation:控制布局方向。

    vertical:垂直方向布局。

    horizontal 水平方向布局。

  • gravity:控制组件所包含的子元素的对其方式。

    center:子容器相对于父容器所在的位置为正中心。

    cente_verticalr: 子容器相对于父容器所在的位置为垂直方向的正中心。

    center_horizontal:子容器相对于父容器所在的位置为水平方向的正中心。

    top/bottom/left/right:子容器相对于父容器所在的位置为上/下(默认)/左/右。

  • layout_gravity:控制该组件在父容器里的对齐方式。

    left:子视图相对于其容器左侧对齐。

    right:子视图相对于其容器右侧对齐。

    top:子视图相对于其容器顶部对齐。

    bottom:子视图相对于其容器底部对齐。

    center_horizontal:子视图在其容器的水平方向上居中对齐。

    center_vertical:子视图在其容器的垂直方向上居中对齐。

    center:子视图在其容器的水平和垂直方向上都居中对齐,等价于同时设置

    center_horizontal和center_vertical。

  • layout_width、layout_heigth:布局宽度、高度。

    布局的宽度通常不直接写数字的。

    用wrap_content(组件实际大小)fill_parent或者match_parent填满父容器。

  • background:为组件设置背景。

    background=“#xxxx” :指定线性布局的背景颜色

    background=“@color/colorPrimary” :指定自设置的颜色。

  • layout_weight:权重,用来分配当前控件在剩余空间的大小。

    一般要把分配该权重方向的长度设置为零。

    比如在水平方向分配权重,就把width设置为零。

RelativeLayout(相对布局)

1.简介
  • 允许开发者通过指定控件相对于其他控件或容器边缘的位置来布局界面。
  • 这种布局方式相对于LinearLayou来说更加灵活,因为它不限制控件必须放置在垂直或水平方向上。
  • 例如,你可以指定一个按钮位于另一个按钮的下方、右侧或者某个控件的中心位置。
2.常用属性
  • ayout_width/layout_height

    • 宽度:wrap_content(默认),match_parent,具体像素值(如 100dp)。
    • 高度:wrap_content(默认),match_parent,具体像素值(如 100dp)。
  • 根据父容器定位

左对齐:layout alignParentLeft
右对齐:layout_alignParentRight
顶部对齐:layout_alignParentTop
底部对齐:layout_alignParentBottom
水平居中:android:layout centerHorizontal
垂直居中:android:layout centerVertical
中间位置:android:layout centerInParent

  • 根据兄弟组件定位

  • 参考组件的左边:layout_toLeftOf
    一参考组件的右边:layout_toRightOf
    参考组件的上方:layout above
    参考组件的下方:layout below
    对齐参考组件的上边界:layout alignTop
    对齐参考组件的下边界:layout alignBottom
    一对齐参考组件的左边界:layout_alignLeft
    对齐参考组件的右边界:layout_alignRight

  • margin:偏移量(外边距)

    设置组件与父容器的边距,又叫偏移
    设置组件上下左右的偏移量:layout margin
    设置组件离左边的偏移量:layout marginLeft
    设置组件离右边的偏移量:layout_marginRight
    设置组件离上面的偏移量:layout_marginTop
    设置组件离下面的偏移量:layout marginBottom

  • padding:填充(内边距)

    设置组件内部元素间的边距(比如Textview里的字体位置)
    往内部元素的上下左右填充一定边距:android:padding
    往内部元素的左边填充一定边距:paddingLeft
    往内部元素的右边填充一定边距:paddingRight
    往内部元素的上方填充一定边距:paddingTop
    往内部元素的下方填充一定边距:paddingBottom

TableLayout(表格布局)

1.简介
  • 用于创建表格布局的类。
  • 允许你以表格的形式安排其子视图,类似于 HTML 中的 元素。
  • 直接往TableLayout中添加组件,这个组件占满一行。
  • .如果想要一行上有多个组件,就要添加一个TableRow的容器。
2.常用属性
  • stretchColumns

    • 作用:指定哪列应该被拉伸以填充额外的空间。
    • 属性值:可以指定一个或多个列的索引,用逗号分隔。例如,“0,2” 表示第 0 列和第 2 列会被拉伸。
  • shrinkColumns

    • 作用:指定哪列应该收缩以适应空间。
    • 属性值:与 stretchColumns 类似,指定一个或多个列的索引。
  • collapseColumns

    • 作用:指定在视图不够宽时哪些列应该被折叠,即不显示。
    • 属性值:同上,指定列的索引。
  • layout_column

    • 作用:指定子视图应该放置在哪一列。
    • 属性值:列的索引,从 0 开始计数。
  • layout_row

    • 作用:指定子视图应该放置在哪一行。
    • 属性值:行的索引,从 0 开始计数。
  • layout_rowSpan

    • 作用:指定子视图应该跨越多少行。
    • 属性值:数值,表示子视图应该跨越的行数。
  • layout_margin/layout_padding

    • 作用:指定子视图周围的外边距/内边距。
    • 属性值:可以是像素值,如 “10dp”,也可以是百分比,如 “10%”。

FrameLayout(帧布局)

1.简介
  • 属于线性布局的一种,它将所有的子视图按照它们添加的顺序依次垂直或水平排列。
  • 与 LinearLayout 不同的是,FrameLayout 中的子视图只能有一个可见的,其余的将被隐藏。
  • 常用于创建动画效果,也可以用来覆盖在其他布局之上显示重要内容。
2.常用属性
  • foreground:设置改帧布局容器的前景图像。
  • foregroundGravity:设置前景图像显示的位置。

GridLayout(网格布局)

1.简介
  • 用于创建网格布局的布局管理器,在 Android 开发中属于相对布局(RelativeLayout)的一部分。
  • 允许将子视图组织成网格状排列,每个子视图占据网格的一个或多个单元格。
2.常用属性
  • 设置排列对其

    排列方式——orientation:vertical(竖直,默认)或者horizontal(水平)

    对齐方式——layout gravity:center,left,right,bottom

  • 设置几行几列

    设置行数——rowCount=“4”:设置网格布局有4行

    设置列数——columnCount=“4”:设置网格布局有4列

  • 设置组件所在的行列

    第几行——layout_row ="1” :设置组件位于第二行

    第几列——layout_column =“2”:设置该组件位于第三列

  • 设置组件横跨几行几列

    横跨几行——layout_rowSpan =“2”:纵向横跨2行

    横跨几列——layout_columnSpan ="3”:横向横跨2列

AbsoluteLayout(绝对布局)

1.简介
  • 允许开发者精确地控制视图的位置和大小,通过设置它们的绝对坐标来确定它们在屏幕上的位置。
  • 这种布局方式不依赖于屏幕上的其他元素,使得视图可以放置在任何地方。
  • 实际应用中,这种布局用的比较少,因为Android终端一般机型比较多,各自的屏幕大小。分辨率等可能都不一样,如果用绝对布局,可能导致在有的终端上显示不全等。
2.常用属性
  • layout_x 和 layout_y:设置视图在容器中的 x 坐标和 y 坐标。
  • layout_width 和 layout_height:设置视图的宽度和高度。可以是具体的像素值,也可以是百分比值(如 wrap_content、match_parent)。
  • layout_gravity:设置视图在容器中的对齐方式,类似于 RelativeLayout 中的。
  • layout_margin:设置视图边缘与容器边缘之间的空白距离。
  • layout_alignParentLeft、layout_alignParentTop、layout_alignParentRight 和 layout_alignParentBottom:设置视图是否与其父布局的相应边缘对齐。
  • layout_below、layout_above、layout_toLeftOf、layout_toRightOf、layout_alignLeft、layout_alignTop、layout_alignRight 和 layout_alignBottom:通过这些属性,可以设置视图与屏幕上其他视图的对齐方式。

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

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

相关文章

docker修改配置文件后一直显示Restarting (1) 状态

docker修改配置文件后一直显示Restarting 状态 一、问题描述 一、问题描述 当我在修改nginx的配置文件之后,一直出现Restarting 状态,并且无法成功访问,如下图所示 然后查看nginx的日志,如下所示: 因为我修改的时配…

华为组网:核心交换机旁挂防火墙,基于ACL重定向配置实验

如图所示,由于业务需要,用户有访问Internet的需求。 用户通过接入层交换机SwitchB和核心层交换机SwitchA以及接入网关Router与Internet进行通信。为了保证数据和网络的安全性,用户希望保证Internet到服务器全部流量的安全性,配置重…

【零基础学习05】嵌入式linux驱动中platform与设备树基本实现

大家好,为了进一步提升大家对实验的认识程度,每个控制实验将加入详细控制思路与流程,欢迎交流学习。 今天主要学习一下,基于总线、设备和驱动进行匹配的平台驱动模型,这次将采用设备树的platform设备与驱动的编写方法,目前绝大多数的Linux内核已经支持设备树,这次主要来…

【Flutter 面试题】在Flutter中如何处理用户输入和手势操作?

【Flutter 面试题】在Flutter中如何处理用户输入和手势操作? 文章目录 写在前面解答补充说明完整代码示例运行结果详细说明 写在前面 🙋 关于我 ,小雨青年 👉 CSDN博客专家,GitChat专栏作者,阿里云社区专家…

用Python编写自己的微型Redis

前几天我想到,写一个简单的东西会很整洁 雷迪斯-像数据库服务器。虽然我有很多 WSGI应用程序的经验,数据库服务器展示了一种新颖 挑战,并被证明是学习如何工作的不错的实际方法 Python中的套接字。在这篇文章中,我将分享我在此过程中学到的知识。 我项目的目的是 编写一个简单…

基于大数据的商业模式创新研究

目录 一、导论 2 (一)研究背景 2 (二)研究意义 2 (三)研究内容 3 (四)研究思路与研究方法 4 (五)国内外研究现状 6 二、大数据的界定与应用概况 7 &#xff…

【Android】源码中的建造者模式

本文是基于 Android 14 的源码解析 在 Android 源码中,最常用到的建造者模式就是 AlertDialog.Builder,使用该建造者来构建复杂的 AlertDialog 对象。在开发过程中,我们经常用到 AlertDialog,具体示例如下: private f…

Linux_网络项目_WEB服务器 处理服务器写入失败后sigpipe信号导致服务器崩溃退出问题,引入线程池缓解大量请求,服务器组件化重构,在线计算机业务测试

文章目录 1. 处理服务器写入管道出错2. 引入线程池缓解大量请求导致服务器崩溃设计线程任务类单例线程池组件设计 3.代码位置4. 在线计算机业务运行截图 1. 处理服务器写入管道出错 经过测试,服务器在读取报文时如果出错可以选择直接关闭这个TCP里链接来节省资源。…

界面开发框架DevExpress XAF v24.1新版预告 - 跨平台应用UI(二)

DevExpress XAF是一款强大的现代应用程序框架,允许同时开发ASP.NET和WinForms。XAF采用模块化设计,开发人员可以选择内建模块,也可以自行创建,从而以更快的速度和比开发人员当前更强有力的方式创建应用程序。 本文中的内容概述了…

Toy 语言到 LLVM IR 实现源码注释

对从程序源代码到AST的转换部分做了注释 源码: toy.cpp #include "llvm/IR/DerivedTypes.h" #include "llvm/IR/IRBuilder.h" #include "llvm/IR/LLVMContext.h" #include "llvm/IR/Module.h" #include "llvm/IR/Ver…

Java Day9 Stream流

Stream流 1、认识2、Stream流使用步骤3、如何获取Stream流4.Stream流的中间方法5、 Stream流终结方法 1、认识 2、Stream流使用步骤 3、如何获取Stream流 //list获取stream流List<String> listnew ArrayList<>();Collections.addAll(list,"崔十一","…

【目标检测经典算法】R-CNN、Fast R-CNN和Faster R-CNN详解系列二:Fast R-CNN图文详解

RCNN算法详解&#xff1a;【目标检测经典算法】R-CNN、Fast R-CNN和Faster R-CNN详解系列一&#xff1a;R-CNN图文详解 学习视频&#xff1a;Faster RCNN理论合集 Fast RCNN 概念辨析 1. RoI 在Fast R-CNN中&#xff0c;RoI&#xff08;Region of Interest&#xff0c;感兴…

Python导入类说一说

要在Python中导入一个类&#xff0c;需要使用import关键字。 详细去看下面的代码 1、多例类 class Restaurant:餐馆类def __init__(self,restaurant_name,cuisine_type):#类的属性self.restaurant_name restaurant_nameself.cuisine_type cuisine_type# self.stregth_leve…

Python网络基础爬虫-python基本语法

文章目录 逻辑语句if,else,elifforwhile异常处理 函数与类defpassclass 逻辑语句 熟悉C/C语言的人们可能很希望Python提供switch语句&#xff0c;但Python中并没有这个关键词&#xff0c;也没有这个语句结构。但是可以通过if-elif-elif-…这样的结构代替&#xff0c;或者使用字…

解决JVM进程被系统杀掉问题

背景 服务A在测试环境&#xff0c;隔几个小时接口就无法访问。登录机器查看&#xff0c;发现进程已经没了。大致猜想是进程使用的内存或CPU资源使用太多&#xff0c;导致被系统kill。 问题定位 使用dmesg命令查看进程被kill的详情。 > dmesg --time-format iso2024-03-0…

【Python如何与电脑玩石头剪刀布游戏】

1、石头剪刀布Python代码如下&#xff1a; import random while True:a random.randint(0, 2)b int(input("请输入一个数字&#xff08;0石头, 1剪刀, 2布&#xff09;: "))c [石头, 剪刀, 布]if b ! 0 and b ! 1 and b ! 2:print("傻子&#xff0c;你出错了…

五子棋小游戏(sut实验报告)

实验目的 实现人与人或人与电脑进行五子棋对弈 实验内容 启动游戏&#xff0c;显示游戏参数设置界面&#xff0c;用户输入参数后进入游戏界面&#xff0c;显示棋盘及双方博弈过程&#xff0c;游戏过程中可选择退出游戏。判定一方获胜后结束本局游戏&#xff0c;可选择继续下…

S4 Hana SD -信贷管理 - 02

2.3 给信贷控制范围分配公司代码 TCODE: SPRO 配置路径:IMG > 企业结构 > 分配 > 财务会计 > 给信贷控制区分配公司代码 配置路径截图: 公司:被分配的公司代码。 公司名称&城市:已在公司代码数据中维护。 CCAR:分配的信贷控制范围。 覆盖CC范围:如…

InstantID Zero-shot Identity-Preserving Generation in Seconds

InstantID: Zero-shot Identity-Preserving Generation in Seconds TL; DR&#xff1a;InstantID IP-Adapter (Face) ControlNet&#xff0c;实现了具有较高保真度的人脸 ID 生成。 方法 InstantID 想做到的事情是&#xff1a;给定一张参考人脸 ID 图片&#xff0c;生成该…

专升本 C语言笔记-07 逗号运算符

1.逗号表达式的用法 就是用逗号隔开的多个表达式。逗号表达式&#xff0c;从左向右依次执行。 2.逗号表达式的特性 2.1.当没有括号时&#xff0c;第一个表达式为整个表达式的值。 代码 int x 3,y 5,a 0; a x,y; printf("a %d",a); 说明:因为逗号优先级最低,会…