Jetpack:003-布局中组件的对齐方式

news2024/9/23 23:31:32

文章目录

  • 1. 概念介绍
  • 2. 使用方法
    • 2.1 行布局中的对齐方式
    • 2.2 列布局中对齐方式
  • 3. 示例代码
  • 4. 内容总结

我们在上一章回中介绍了Jetpack中的页面和布局,本章回中将介绍 布局中组件的对齐方式。闲话休提,让我们一起Talk Android Jetpack吧

1. 概念介绍

我们在本章回中介绍的对齐方式是组件在布局中的排列方式,常见的是居中对齐,它表示组件位于布局的中间位置。

此外,我们介绍对齐主要是指在ColumnRow这两个布局中的对齐方式。其它布局中的对齐与此类似,只是具体的细节不同而已。

2. 使用方法

我们使用的Column和Row布局都提供了相关的参数来设置位于它们中的组件对齐方式,接下来我们分别介绍这两种布局中对齐方式。

2.1 行布局中的对齐方式

  • verticalAlignment参数:它表示组件在垂直方向的对齐方式.它的值都包含start,top,end,bottom和center这些关键字,分别表示起点,顶部,终点,底部和居中对齐。这些对齐方式容易理解,大家可以自行修改代码来体验一下。
  • horizontalArrangement参数:它表示组件在水平方向的对齐方式;它的值比较特殊,不容易理解,大家可以参考官方给的图示,详细如下:
    在这里插入图片描述

2.2 列布局中对齐方式

  • horizontalAlignment参数:它表示组件在水平方向的对齐方式;它的值都包含start,top,end,bottom和center这些关键字,分别表示起点,顶部,终点,底部和居中对齐。这些对齐方式容易理解,大家可以自行修改代码来体验一下。
  • verticalArrangement参数:它表示组件在垂直方向的对齐方式.它的值比较特殊,不容易理解,大家可以参考官方给的图示,详细如下:
    在这里插入图片描述

3. 示例代码

Column(
    modifier = Modifier
        .fillMaxHeight()
        .fillMaxWidth(),
    horizontalAlignment = Alignment.CenterHorizontally,
    //列中元素的对齐方式,需要设置fillMaxHeight,不然只有内容大小,无法调节元素对齐
    verticalArrangement = Arrangement.Center
) {
    for (item in list) {
        //控制每个list选项的边距,长宽度,边框和背景颜色
        Surface(
            modifier = Modifier
                .fillMaxWidth() //相当于match_parent,默认是wrap_content
                .height(48.dp)
                .padding(vertical = 8.dp, horizontal = 16.dp)
                .border(width = 3.dp, color = Color.Yellow,)
        ) {
            Row (
                verticalAlignment = Alignment.CenterVertically,
                //行中元素的对齐方式,需要设置fillMaxWidth,不然只有内容大小,无法调节元素对齐
                horizontalArrangement = Arrangement.SpaceBetween,
                modifier = Modifier
                    .padding(start = 24.dp)
                    .align(alignment = Alignment.CenterHorizontally)
                    ){
                Text(text = item)
                Button(onClick = { Log.d("ex001","button is clicked")}) {
                    Text(text = "Button")
                }
            }
        }
    }
}

上面的示例代码中包含一个列和一个行,它的运行效果和上一章回的相同。我建议大家自己动手去修改一下行和列的对齐方式,这样可以亲自体验一下不同的对齐效果。此外,还需要把行或者列的长度设置为最大值,不然没有对齐效果,详细内容可以参考代码中的注释。

4. 内容总结

最后,我们对本章回中的内容做一个总结:

  • 对齐就是指布局中组件的排列方式;
  • 行和列布局都支持对齐功能,它们提供水平和垂直两个方向的对齐功能;
  • 对于xxxAlignment相关的对齐方式相对容易理解;
  • 对于xxxArrangement相关的对齐方式不好理解,可以参考效果图;

看官们,关于Jetpack中组件在布局中的对齐方式就介绍到这里,欢迎大家在评论区交流与讨论!

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

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

相关文章

大数据软件系统开发框架

大数据处理框架是用于处理大规模数据集的软件工具和平台,它们可以帮助分析、存储和处理庞大的数据量。以下是一些常见的大数据处理框架,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 1.A…

pytorch_神经网络构建3

文章目录 卷积神经网络实现卷积层,池化层池化层:数据标准化AlexNet卷积网络深层网络结构vgggoogleNet网络结构ResNet网络结构DensNet网络结构训练卷积神经网络会遇到的一些问题学习率衰减 卷积神经网络 前面讲述了逻辑回归分类,模拟函数回归问题,单层,深层网络,它们以点和向量…

基于SSM的开心农家乐系统设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

Tomcat安装

tomcat.apache.org 下载Tomcat8 根据系统选择安装包 配置JAVA_HOME 解压文件,启动Tomcat 启动成功,默认占用8080端口 MAC版本在bin目录输入./startup.sh启动Tomcat 访问Tomcat:localhost:8080 根据tomcat版本选择servlet版本 tomc…

OpenWRT配置SFTP远程文件传输,实现数据安全保护

文章目录 前言1. openssh-sftp-server 安装2. 安装cpolar工具3.配置SFTP远程访问4.固定远程连接地址 前言 本次教程我们将在OpenWRT上安装SFTP服务,并结合cpolar内网穿透,创建安全隧道映射22端口,实现在公网环境下远程OpenWRT SFTP&#xff…

运算符

目录 算术运算符 比较运算符 逻辑运算符 位运算符 运算符的优先级 MySQL从小白到总裁完整教程目录:https://blog.csdn.net/weixin_67859959/article/details/129334507?spm1001.2014.3001.5502 数据库中的表结构确立后,表中的数据代表的意义就已经确定。而…

[护网杯 2018]easy_tornado 解析

打开网页有三个链接,依次点开之后获得一个fllllllllllllag一个render和一个MD5加密格式 之后尝试去访问/fllllllllllllag 直接跳出报错界面。 但这个报错界面居然是可以改的 试着注入一下 看了师傅的wp发现好像没有,要从框架入手 框架就是标题的torna…

[极客大挑战 2020]Roamphp2-Myblog - 伪协议+文件上传+(LFIZIP)||(LFIPhar)【***】

[极客大挑战 2020]Roamphp2-Myblog 1 解题流程1.1 分析1.2 解题1.3 中场休息——再分析1.3.1 浅层分析1.3.2 难点疑惑1.3.3 深度分析 1.4 重整旗鼓——再战1.4.1 解法一:zip伪协议1.4.2 解法二:phar伪协议 2 总结展望 1 解题流程 1.1 分析 1、点击logi…

OpenCV4(C++)—— 图片的基本尺寸变换

文章目录 一、resize(缩放)二、filp(翻转)三、裁剪四、拼接 一、resize(缩放) void cv::resize(cv::InputArray src, // 输入图像cv::OutputArray dst, // 输出图像cv::Size dsize, …

C++对象模型(6)-- 数据语义学:继承的对象布局(含虚函数)

1、单个类带虚函数的对象布局 当类含有虚函数时,在实例化对象时会产生一个虚函数表指针,这个虚函数表指针通常在对象的开头位置。 class Base { public:int x;int y;virtual void virFunc() { } }; 对象布局如下: 2、单一继承父类带虚函数…

ZYNQ的程序固化

03-ZYNQ学习(启动篇)之程序的固化_zynq ps网口-CSDN博客 ZYNQ启动之后, PS_POR_B 复位引脚置低后,硬件立即对引导带引脚进行采样,并可选择启用 PS 时钟 PLL。然后,PS开始执行片上ROM中的BootROM代码来引导…

UniApp项目实践HelloUni继续快速小步快跑中,前面是大上海吗

效果镇楼 本来想着稍微刷点课程就完活的,结果还是到这个点了。宝贵的时间啊 直接代码干就是了,参考如下链接; UniApp实践业务项目

使用Resource Hacker编辑DLL文件

Resource Hacker下载 链接:https://pan.quark.cn/s/8e18988d49aa 操作 打开resource hacker软件 打开文件 修改 编译,点击绿色按钮 提示成功 将编译后的文件另存为即可

C语言纳秒级计时

C语言纳秒级计时 文章目录 C语言纳秒级计时函数介绍示例代码参考 函数介绍 C语言中常用的clock()函数只能精确到毫秒级,对应的数据类型是clock_t。 C11标准中提供了纳秒级别定时器:timespec_get()函数与timespec()类型。 struct timespec{time_t tv_s…

找不到msvcp140.dll导致代码无法继续执行 ,8个方法搞定msvcp140.dll文件缺失问题

首先,让我们了解一下 msvcp140.dll 文件。msvcp140.dll 是 Microsoft Visual Studio 2010 编译的程序所使用的动态链接库之一,它包含了一些 C标准库函数的实现,例如 std::vector、std::string 等。这个文件主要被用于支持 C程序的运行&#x…

计算机是如何启动的

一直好奇计算机启动的原理是怎么样的?最近刚好想搞一下操作系统,故此总结一下。 打开电源 对于现代计算机来说,打开电源是开机的第一步,这一点无用质疑,离开了电,现代社会估计就会垮台。 计算机启动 加电…

ctfshow-web9(奇妙的ffifdyop绕过)

尝试万能密码登录,没有任何回显 尝试扫描目录,这里不知道为啥御剑什么都扫不到,使用dirsearch可以扫到robots.txt 查看robots协议 访问下载index.phps 查看index.phps 简单审计一下php代码: $password$_POST[password]; if(strl…

Linux——多线程1

目录 一.理解线程的概念 Linux线程概念 二.线程的优点 三.线程的缺点 四.线程用途 五. Linux进程VS线程 一.理解线程的概念 教材观点: 线程是一种执行分支,执行粒度比进程更细,调度成本更低。线程是进程内部的一个执行流。 内核观点: …

【Python查找算法】二分查找、线性查找、哈希查找

目录 1 二分查找算法 2 线性查找算法 3 哈希查找算法 1 二分查找算法 二分查找(Binary Search)是一种用于在有序数据集合中查找特定元素的高效算法。它的工作原理基于将数据集合分成两半,然后逐步缩小搜索范围,直到找到目标元素…

python的一些知识点

之前自学过python,学了一些基本语法,但忘得厉害。最近,在努力地写代码,在学代码,写代码中学习python,为此记录一些关于python的知识点。