设置视图的对齐方式

对齐方式

在XML文件中通过属性android:layout_gravity可以指定当前视图的对齐方向,当属性值为top时表示视图朝上对齐,为bottom时表示视图朝下对齐,为left时表示视图靠左对齐,为right时表示视图靠右对齐。如果希望视图既朝上又靠左,则用竖线连接top与left,此时属性标记为android:layout_gravity=“top|left”;如果希望视图既朝下又靠右,则用竖线连接bottom与right,此时属性标记为android:layout_gravity="bottom|right"

​ 注意layout_gravity规定的对齐方式,指的是当前视图往上级视图的哪个方向对齐,并非当前视图的内部对齐。若想设置内部视图的对齐方向,则需由当前视图的android:gravity指定,该属性一样拥有top、bottom、left、right 4种取值及其组合。它与layout_gravity的不同之处在于:layout_gravity设定了当前视图相对于上级视图的对齐方式,而gravity设定了下级视图相对于当前视图的对齐方式;前者决定了当前视图的位置,而后者决定了下级视图的位置。

layout_grivity和gravity的区别

​ 为了进一步分辨layout_gravitygravity的区别,接下来做个实验,对某个布局视图同时设置android:layout_gravity和android:gravity属性,再观察内外视图的对齐情况。下面便是实验用的XML文件例子:
注: layout_gravity指当前元素相对于父元素的对齐方式,gravity指定子元素里的对其方式。

<!-- 最外层的布局背景为橙色,它的下级视图在水平方向排列 -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
   android:layout_width="match_parent"
   android:layout_height="300dp" 
   android:background="#ffff99"
      android:padding="5dp">
   <!-- 第一个子布局背景为红色,它在上级视图中朝下对齐,它的下级视图则靠左对齐 -->
   <LinearLayout
       android:layout_width="0dp"
       android:layout_height="200dp"
       android:layout_weight="1"
       android:layout_gravity="bottom"
       android:gravity="left"
       android:background="#ff0000"
       android:layout_margin="10dp"
       android:padding="10dp">
       <!-- 内部视图的宽度和高度都是100dp,且背景色为青色 -->
       <View
           android:layout_width="100dp"
           android:layout_height="100dp"
           android:background="#00ffff" />
   </LinearLayout>
   <!-- 第二个子布局背景为红色,它在上级视图中朝上对齐,它的下级视图则靠右对齐 -->
   <LinearLayout
       android:layout_width="0dp"
       android:layout_height="200dp"
       android:layout_weight="1"
       android:layout_gravity="top"
       android:gravity="right"
       android:background="#ff0000"
       android:layout_margin="10dp"
       android:padding="10dp">
       <!-- 内部视图的宽度和高度都是100dp,且背景色为青色 -->
       <View
           android:layout_width="100dp"
           android:layout_height="100dp"
           android:background="#00ffff" />
   </LinearLayout> 
</LinearLayout>

实验得到的图形如下:
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

分页合理化是什么?

一、前言 只要是干过后台系统的同学应该都做过分页查询吧&#xff0c;前端发送带有页码&#xff08;pageNum&#xff09;和每页显示数量&#xff08;pageSize&#xff09;的请求&#xff0c;后端根据这些参数来提取并返回相应的数据集。在SpringBoot框架中&#xff0c;经常会使…

docker安装入门及redis,minio,rabbitmq应用安装

部分笔记来自黑马课堂&#xff1a;【黑马程序员Docker快速入门到项目部署&#xff0c;MySQL部署Nginx部署docker自定义镜像DockerCompose项目实战一套搞定-哔哩哔哩】 https://b23.tv/niWEhEF 一、什么是docker&#xff1a; 快速构建、运行、管理应用的工具。--帮助我们快速部…

HarmonyOS应用抓包实战

Charles抓包原理 Charles是一个HTTP代理服务器,HTTP监视器,反转代理服务器&#xff0c;当浏览器连接Charles的代理访问互联网时&#xff0c;Charles可以监控浏览器发送和接收的所有数据。 在开发OpenHarmony/HarmonyOS应用开发时&#xff0c;我们使用的是ohos/axios来进行网络…

VSCode注释

一、设置 1. 安装 “KoroFileHeader” 插件 2. 编辑 setting.json 文件 在设置页面中&#xff0c;使用搜索框输入 “fileheader”&#xff0c;然后点击 “在 setting.json 中编辑”。 3. 添加设置项到 setting.json // 函数 "fileheader.cursorMode": {"de…

【六】【C语言\动态规划】买卖股票的最佳时机含手续费、买卖股票的最佳时机 III、买卖股票的最佳时机 IV,三道题目深度解析

动态规划 动态规划就像是解决问题的一种策略&#xff0c;它可以帮助我们更高效地找到问题的解决方案。这个策略的核心思想就是将问题分解为一系列的小问题&#xff0c;并将每个小问题的解保存起来。这样&#xff0c;当我们需要解决原始问题的时候&#xff0c;我们就可以直接利…

怎么快速采集京东、淘宝天猫、1688、拼多多等百家电商产品图片和视频

作为新时代电商&#xff0c;主图和视频素材尤为关键&#xff0c;有好的主图才能更加的吸引客户点击&#xff0c;促进成交量。但是现在很多商家直接制作的主图都很难有预期效果&#xff0c;自己拍摄的图片暗沉&#xff0c;没有光鲜亮丽的突出性。所以现在很多人都是在采集同类商…

Unity中Shader裁剪空间推导(正交相机到裁剪空间的转化矩阵)

文章目录 前言一、正交相机 转化到 裁剪空间 干了什么1、正交相机裁剪的范围主要是这个方盒子2、裁剪了之后&#xff0c;需要把裁剪范围内的坐标值化到[-1,1]之间&#xff0c;这就是我们的裁剪空间。3、在Unity中&#xff0c;设置相机为正交相机4、在这里设置相机的近裁剪面和远…

Python 雨花 - 前言

众多技术教程的个人网站 https://wukongnotnull.com/ 目录 ⛳️ 教程介绍&#x1f3af; 前置要求⚽️ 学习交流群&#x1f9ed; 教学文档配套视频&#x1f94e; 一对一 VIP答疑辅导&#x1f4a1; 参考文献 ⛳️ 教程介绍 Python 入门教程&#xff0c;通俗易懂&#xff0c;快速…

手滑误删备忘录?这样做手滑误删也能恢复

在这个快节奏的时代&#xff0c;备忘录几乎成了我日常生活的救命稻草。匆忙间&#xff0c;我时常依赖它记录那些一闪而过的灵感或是重要的待办事项。但你有没有过这样的经历&#xff1f;在滑动屏幕的一瞬间&#xff0c;一个不小心&#xff0c;重要的备忘录就这么消失了&#xf…

springboot+vue项目如何在linux上部署

在linux上部署项目&#xff0c;是我们实训项目作业的最后一步&#xff0c;此时我们的项目编码测试已经完成&#xff0c;接下来就需要在服务器上部署上线&#xff0c;那么如何部署上线&#xff0c;接下来我会在虚拟机上的CentOS7系统上实现部署&#xff0c; 一.下载JDK 因为我…

如何搭建一个高效的Python开发环境

“工欲善其事&#xff0c;必先利其器”&#xff0c;这里我们来搭建一套高效的 Python 开发环境&#xff0c;为后续的数据分析做准备。 关于高效作业&#xff0c;对于需要编写 Python 代码进行数据分析的工作而言&#xff0c;主要涉及两个方面。 1. 一款具备强大的自动完成和错…

c语言:计算阶乘的和|练习题

一、题目 输入一个数n&#xff0c;计算1&#xff01;2&#xff01;……n&#xff01;的和 如图&#xff1a; 二、思路分析 设置两个函数 1、一个函数求阶乘 2、一个函数求多个数相加的总和 3、把求阶乘的函数&#xff0c;嵌套在求相加总和的函数里面 三、代码截图【带注释】 四…

highcharts的甘特图设置滚动时表头固定,让其他内容跟随滚动

效果图&#xff1a;最左侧的分类列是跟随甘特图滚动的&#xff0c;因为这一列如果需要自定义&#xff0c;比如表格的话可能会存在行合并的情况&#xff0c;这个时候甘特图是没有办法做的&#xff0c;然后甘特图的表头又需要做滚动时固定&#xff0c;所以设置了甘特图滚动时&…

【代码混淆】react-native 代码混淆

​ 使用react native开发app&#xff0c;实现代码混淆的操作。 无论是加密还是运行时虚拟机&#xff0c;最后都可以通过执行时调试把代码反向生成出来原来的代码&#xff0c;虽然能抵御低端的黑客攻击&#xff0c;但是对高端黑客却形同虚设。 代码混淆是通过修改源代码结构和变…

【习题】运行Hello World工程

判断题 1. DevEco Studio是开发HarmonyOS应用的一站式集成开发环境。 正确(True)错误(False) 正确(True) 2. main_pages.json存放页面page路径配置信息。 正确(True)错误(False) 正确(True) 单选题 1. 在stage模型中&#xff0c;下列配置文件属于AppScope文件夹的是&am…

视频专访 | 每日互动刘宇:AI不止GC,更有TA

当前&#xff0c;“百模大战”已进入拼落地、拼应用的下半场&#xff0c;给千行百业带来了降本增效的巨大机遇。聚焦到品牌营销领域&#xff0c;大模型给行业带来了哪些改变&#xff1f;企业如何利用大模型优化数字化营销手段、提升数字化营销效果&#xff0c;最终驱动品牌实现…

嵌入式——I2C原理代码结合(干货)看图易懂

学习目标 理解I2C通讯原理理解I2C通讯过程中的信号理解软件I2C实现过程理解硬件I2C的工作内容学习内容 I2C通讯规则 I2C总线包括两根信号线:SDA(串行数据线)和SCL(串行时钟线)。这两根信号线共用一个总线,因此在总线上可以连接多个设备。在I2C总线上,每个设备都有一个唯…

微服务注册与发现——Eureka

文章目录 Eureka使用引用配置启动类标记访问微服务注册微服务工程添加引用增加配置启动类增加注解启动服务注册 Eureka Server集群部署修改配置文件启动多个eureka实例微服务注册到多个eureka实例 为Eureka Server添加用户认证引入spring-security配置关闭security的csrf&#…

C练习——水仙花数

“水仙花数”是指一个三位数&#xff0c;其每位数字的立方和等于该数本身。 例如&#xff1a;153是一个“水仙花数”&#xff0c;因为1531的三次方&#xff0b;5的三次方&#xff0b;3的三次方。 // 打印 100 - 999 的所有水仙花数 // 利用for循环控制100 - 999个数&#xff…

Exploring the Limits of Masked Visual Representation Learning at Scale论文笔记

论文名称&#xff1a;EVA: Exploring the Limits of Masked Visual Representation Learning at Scale 发表时间&#xff1a;CVPR2023 作者及组织&#xff1a;北京人工智能研究院&#xff1b;华中科技大学&#xff1b;浙江大学&#xff1b;北京理工大学 GitHub&#xff1a;http…