Android gravity和layout_gravity的区别

一、gravity和layout_gravity相同处

    两者都是设置对齐方式的属性。内部的属性值相同。

根据英文意思也能理解其中的意思。如center_horizontal表示在水平方向上的位置为中间。

 

 二、gravity和layout_gravity的不同处

  gravity是设置自身内部元素的对齐方式。比如一个TextView,则是设置内部文字的对齐方式。如果是ViewGroup组件如LinearLayout的话,则为设置它内部view组件的对齐方式。

 layout_gravity是设置自身相当于父容器的对齐方式。比如,一个TextView设置layout_gravity属性,则表示这TextView相对于父容器的对齐方式。

具体参考如下

1、gravity效果

①TextView

  【代码】

1 <TextView
2         android:text="这是一个TextView"
3         android:layout_width="200dp"
4         android:layout_height="200dp"
5         android:gravity="center"
6         android:background="#ff0"
7         />

【提示】这里方便观察,我们给TextView设置了一个backGround背景颜色。设置了固定的宽度

【注意】如果要用gravity属性,此组件的layout_width和layout_height不能设置为wrap_content。此时设置的gravity属性没有效果,因为组件包裹着内容,无论设置什么,也都不能有改变

【效果】

 

②LinearLayout

【代码】

 1     <LinearLayout
 2         android:layout_width="match_parent"
 3         android:layout_height="match_parent"
 4         android:gravity="center"
 5         android:background="#f00"
 6         >
 7         <TextView
 8             android:text="TextView在这里"
 9             android:layout_width="200dp"
10             android:layout_height="200dp"
11             android:background="#ff0"
12             />
13     </LinearLayout>

【提示】此时外部viewGroup类组件设置gravity为center,内部组件TextView在外部LinearLayout的中间。TextView没有设置gravity属性,则文字在开始位置

【效果】

 

2、layout_gravity效果

  对于layout_gravity不是什么情况下都能设置的属性(如RelativeLayout),而且在不同的viewGroup中产生的效果也会不同(如LinearLayout)。

具体实例如下

 ①LinearLayout

 1 <LinearLayout
 2         android:layout_width="match_parent"
 3         android:layout_height="match_parent"
 4         android:background="#f00"
 5         android:orientation="horizontal">
 6         <TextView
 7             android:text="TextView在这里"
 8             android:layout_width="200dp"
 9             android:layout_height="200dp"
10             android:background="#ff0"
11             android:layout_gravity="center"
12             />
13     </LinearLayout>

【效果】

 

【提示】此时layout_gravity的center值,并没有让TextVieW在LinearLayout的中间,这和LinearLayout的orientation的定位方向有关。

当设置为horizontal时,LinearLayout中的组件时按照横着排列,当设置ayout_gravity属性为center值时,组件就在垂直方向处于中间位置。同理,当设置为vertical时,效果如下

 

②FrameLayout(帧布局)

【代码】

 1     <FrameLayout
 2         android:layout_width="match_parent"
 3         android:layout_height="match_parent"
 4         android:background="#f00">
 5         <TextView
 6             android:text="TextView在这里"
 7             android:layout_width="200dp"
 8             android:layout_height="200dp"
 9             android:background="#ff0"
10             android:layout_gravity="center"
11             />
12     </FrameLayout>

【效果】

 

转载于:https://www.cnblogs.com/xqz0618/p/gravity.html

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

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

相关文章

koa --- mongoose连接mongoDB

使用Mongoose对MongoDB进行操作 const mongoose require(mongoose); mongoose.connect(mongodb://localhost/test,{ })Mongoose中的Schema 定义Schema categorySchema const categorySchema new mongoose.Schema({name:String,description: String,createdAt:{type: Date,…

Java Web 请求转发与请求重定向

Java Web 请求转发与请求重定向 请求转发 服务器行为&#xff0c;即用户向服务器发送了一次http请求&#xff0c;该请求可能会经过多个信息资源处理以后菜返回给用户&#xff0c;各个信息资源使用请求转发机制互相转发请求&#xff0c;但是用户是感觉不到请求转发的。通过req…

05.RDD详解

05.Spark--RDD详解 RDD详解--groupByKey--reduceByKey [MapPartitionRDD单词统计] 单词统计 import org.apache.spark.{SparkConf,SparkContext} object WordCountScala{def main(args:Array[String]):Unit{//创建spark配置对象val confnew SparkConf()conf.setAppName("W…

Mininet

首先&#xff0c;我折腾了两周多的东西终于弄出一点眉目了。 有以下几个内容需要学习记忆一下。 1.虚拟机&#xff0c;弄不出来共享文件夹&#xff0c;就用U盘吧&#xff0c;贼快还不用安装配置各种东西&#xff0c;virtualbox和VMware都支持。 2.ubantu安装软件中途失败&#…

docker --- 使用docker-compose.yml生成redis,并连接redis-cli

docker.compose.yml 配置 version: 3.1 services:redis:image: redisports:- 6379:6379命令行:docker-compose up 查看: docker ps 进入redis-cli,输入以下 docker exec -it 7dc0a redis-cli -h localhost -p 6379 操作Redis数据 设置 namemarron set name marron 获取nam…

浅谈javaweb三大框架和MVC设计模式

浅谈javaweb三大框架和MVC设计模式转载自&#xff1a;http://blog.csdn.net/sunpeng19960715/article/details/50890705 小序&#xff1a;博主以前在学javaweb的时候开始总不理解javaweb三大框架和MVC框架模式&#xff0c;虽然没有把两者混为一谈&#xff0c;但是也是很晕菜。…

win下配置nginx

1.下载:http://nginx.org/en/download.html 2.在安装目录cmd: start nginx.exe 启动nginx 3.修改默认运行端口80(nginx.conf): HTTP 数据分发 修改配置文件nginx.conf相应节点: 修改完后重启服务: nginx -s reload TCP 数据分发: nginx 1.9以上版本支持tcp转发 配置文件中增加:…

在springBoot中配置web.xml中配置的servlet

第一种 web.xml (截取的需要转换的) 当拦截到 /socke t时执行该servlet <servlet><servlet-name>websocket</servlet-name><servlet-class>org.ldd.ssm.hangyu.socket.MyWebSocketServlet</servlet-class></servlet><servlet-mapping&g…

koa --- koa-bouncer验证

使用 koa-bouncer中间件对传入的数据进行验证 const bouncer require(koa-bouncer); app.use(bouncer.middleware());const val async (ctx, next) > {ctx.validateBody(name).required(要求提供用户名).isLength(6, 16, 用户名长度应该为6~16).isString().trim()next();…

static关键字的作用

//C/C程序员面试指南 杨国祥等编著 定义全局静态变量。全局静态变量有以下特点&#xff1a; 在全局数据区分配内存&#xff1b;如果没有初始化&#xff0c;其默认值为0&#xff1b;该变量在本文件内从定义开始到文件结束可见。定义局部静态变量。局部静态变量有以下特点&…

Redis 初次尝试

Redis 初次尝试 第一次接触redis&#xff0c;也不知道要写些什么。就玩了下将redis列表中的数据存入mysql数据库中。 首先有三个文件&#xff1a; redis.php 添加数据进redis&#xff1b; insert_class.php 将数据插入数据库&#xff1b; inert.php 调用insert_class.php;…

fiddler2抓包数据工具使用教程

一款免费且功能强大的数据包抓取软件。它通过代理的方式获取程序http通讯的数据&#xff0c;可以用其检测网页和服务器的交互情况&#xff0c;能够记录所有客户端和服务器间的http请求&#xff0c;支持监视、设置断点、甚至修改输入输出数据等功能。fiddler包含了一个强大的基于…

egg --- 初始化一个egg项目基本结构说明

Egg.js体验 全局安装 // 创建项目 $ npm i egg-init -g $ egg-init egg-example --typesimple $ cd egg-example $ npm i// 启动项目 $ npm run dev $ open localhost:7000Egg.js的结构 路由(Router): 将请求URL和具体承担执行动作的Controller的关系对应控制器(Controller)…

葫芦娃

葫芦娃救爷爷 1.队名——代码那些事儿 2.团队成员 刘佳 211606320&#xff08;队长&#xff09;李佳 211660313周世元 211606348王浩 211606378曾丽丽 211606302陈水莲 211606303许燕婷 211606338杨小妮 2116063413.队长博客链接 -https://www.cnblogs.com/LJ-D/p/9799944.html…

webstorm遇到的问题

问题一&#xff1a;英译&#xff1a;未指定node.js的解释器。 解决方法&#xff1a;将webstorm配置支持node.js并自动补全 步骤&#xff1a; 先下载node.jsFile->Setting->输入Node.js&#xff08;选中点进去&#xff09;->Node imterpreter&#xff08;选择node的安装…

egg --- 配置连接mysql 创建模型 插入数据

在egg中使用egg-sequelize插件 sequelize是与数据库操作相关的库安装: npm install --save egg-sequelize mysql2 在egg中配置sequelize 1.在 config/plugin.js中引入 egg-sequelize插件,代码如下 sequelize: {enable: true,package: egg-sequelize }2.在config/config.def…

Flask 在 Debug 模式下初始化2次

请移步&#xff1a; http://blog.zengrong.net/post/2632.html https://stackoverflow.com/questions/9449101/how-to-stop-flask-from-initialising-twice-in-debug-mode/9476701#9476701 https://stackoverflow.com/questions/25504149/why-does-running-the-flask-dev-serve…

eclipse报错: Could not generate secret

在调用微信接口时&#xff0c;出现一个错误&#xff1a; 一直以为是接口调用问题&#xff0c;经多方查询和尝试解决&#xff0c;最后找到根源&#xff1a; edit-->使用default就可以了。 原因&#xff1a; 在eclipse中运行时&#xff0c;把签名信息给去掉了。 转载于:https:…

koa --- [MVC实现之一]自定义路由读取规则

实现MVC分层架构 目标是创建约定大于配置、开发效率高、可维护性强的项目架构路由处理 规范 所有路由,都要放在routes文件夹中若导出路由对象,使用 动词空格路径 作为key, 值是操作方法若导出函数, 则函数返回第二条约定格式的对象 路由定义: 新建 router/index.js, 默认index…

sql中的left join、right join、inner join

sql中的left join、right join、inner join 转自&#xff1a;http://www.cnblogs.com/pcjim/articles/799302.html left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录inner join…