返回顶部
首页 > 资讯 > 移动开发 >android:layout_gravity和android:gravity的区别
  • 360
分享到

android:layout_gravity和android:gravity的区别

layout_gravitygravityAndroid 2022-06-06 01:06:00 360人浏览 独家记忆
摘要

1.首先来看看Android:layout_gravity和android:gravity的使用区别。 android:gravity: 这个是针对控件里的元素来说的,用来控制

1.首先来看看Android:layout_gravity和android:gravity的使用区别。

android:gravity:

这个是针对控件里的元素来说的,用来控制元素在该控件里的显示位置。例如,在一个Button按钮控件中设置如下两个属性,

Android:gravity="left"和android:text="提交",这时Button上的文字“提交”将会位于Button的左部。

android:layout_gravity:

这个是针对控件本身而言,用来控制该控件在包含该控件的父控件中的位置。同样,当我们在Button按钮控件中设置android:layout_gravity="left"属性时,表示该Button按钮将位于界面的左部。

2.属性值:

这两个属性可选的值有:top、bottom、left、right、center_vertical、fill_vertical、center_horizontal、fill_horizontal、center、fill、clip_vertical。

一个属性可以包含多个值,需用“|”分开。其含义如下:

top 将对象放在其容器的顶部,不改变其大小.
bottom 将对象放在其容器的底部,不改变其大小.
left 将对象放在其容器的左侧,不改变其大小.
right 将对象放在其容器的右侧,不改变其大小.
center_vertical 将对象纵向居中,不改变其大小. 
垂直对齐方式:垂直方向上居中对齐。
fill_vertical 必要的时候增加对象的纵向大小,以完全充满其容器. 
垂直方向填充
center_horizontal 将对象横向居中,不改变其大小. 
水平对齐方式:水平方向上居中对齐
fill_horizontal 必要的时候增加对象的横向大小,以完全充满其容器. 
水平方向填充
center 将对象横纵居中,不改变其大小.
fill 必要的时候增加对象的横纵向大小,以完全充满其容器.
clip_vertical

附加选项,用于按照容器的边来剪切对象的顶部和/或底部的内容. 剪切基于其纵向对齐设置:顶部对齐时,剪切底部;底部对齐时剪切顶部;除此之外剪切顶部和底部.

垂直方向裁剪

clip_horizontal

附加选项,用于按照容器的边来剪切对象的左侧和/或右侧的内容. 剪切基于其横向对齐设置:左侧对齐时,剪切右侧;右侧对齐时剪切左侧;除此之外剪切左侧和右侧.

水平方向裁剪

我们主要来看看center_vertical和center_horizontal两个属性值,

center_vertical是指将对象在垂直方向上居中对齐,即在从上到下的方向上选择中间的位置放好;center_horizontal是指将对象水平方向上居中对齐,即在从左到右的方向上选择中间的位置放好

3.特殊情况

当我们采用LinearLayout布局时,有以下特殊情况需要我们注意:

(1)当 android:orientation="vertical"  时, android:layout_gravity只有水平方向的设置才起作用,垂直方向的设置不起作用。即:left,right,center_horizontal 是生效的。

(2)当 android:orientation="horizontal" 时, android:layout_gravity只有垂直方向的设置才起作用,水平方向的设置不起作用。即:top,bottom,center_vertical 是生效的。

下面以一个例子说明:(本例来源于:Http://blog.csdn.net/dekunchenivan/article/details/6718678)


<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
 android:orientation="vertical" 
 android:layout_width="fill_parent" 
 android:layout_height="fill_parent" 
 > 
 <TextView 
 android:layout_width="100dip" 
 android:layout_height="100dip" 
 android:layout_gravity="bottom|center_horizontal" 
 android:gravity="center|bottom" 
 android:background="#00FF00" 
 android:text="@string/textview" 
 /> 
 <Button 
 android:layout_width="100dip" 
 android:layout_height="100dip" 
 android:layout_gravity="bottom|left" 
 android:gravity="left|top" 
 android:background="#FF0000" 
 android:text="@string/button" 
 /> 
</LinearLayout> 

其效果如图: 

在TextView中,我们设置了

android:layout_gravity="bottom|center_horizontal" 
,但该TextView并没有显示在屏幕的下方正中央,表明只有center_horizontal属性起了作用,这正是因为我们使用了LinearLayout布局,并且其android:orientation="vertical",只有水平方向的设置才会起作用,其他方向则会失效。同样,Button也一样。

您可能感兴趣的文章:Android中gravity、layout_gravity、padding、margin的区别小结Android中gravity与layout_gravity的使用区别分析


--结束END--

本文标题: android:layout_gravity和android:gravity的区别

本文链接: https://lsjlt.com/news/21701.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • android:layout_gravity和android:gravity的区别
    1.首先来看看Android:layout_gravity和android:gravity的使用区别。 android:gravity: 这个是针对控件里的元素来说的,用来控制...
    99+
    2022-06-06
    layout_gravity gravity Android
  • android:layout_gravity和android:gravity的区别是什么
    android:layout_gravity是用于设置布局在父容器中的对齐方式,而android:gravity是用于设置控件内部内...
    99+
    2023-08-16
    android
  • LinkedList和ArrayList的区别、Vector和ArrayList的区别
      LinkedList和ArrayList的区别  继承类和实现接口上来讲  他们都实现了List接口下的方法,他们都允许重复,允许null,并且有序的集合。  LinkedList实现了Deque接口。  底层实现上来讲  ArrayL...
    99+
    2023-06-02
  • Mybatis——#{}和${}的区别
    在使用mybatis的时候我们会使用到#{}和${}这两个符号来为sql语句传参数,那么这两者有什么区别呢? #{}是预编译处理,是占位符,${}是字符串替换,是拼接符 Mybatis在处理#{}...
    99+
    2023-09-13
    mybatis java mysql
  • in和exists的区别以及exists和distinct去重的区别?
    小编相信大家都知道in和exists的区别:1、运用情况不同sql中in适用于子查询得出的结果集记录较少,主查询中的表较大且又有索引的表,。sql中exist适用于外层的主查询记录较少,子查询中的表大,又有...
    99+
    2024-04-02
  • java equals和==的区别
    java9举例代码: (推荐学习:java课程)String str1 = "abc"; String str2 = "abc"; String str3 = new String("abc"); String s...
    99+
    2015-02-02
    java入门 java
  • ResultMap和ResultType的区别
    ResultMap和ResultType的区别使用mybatis进行数据库连接操作时对于SQL语句返回结果的处理通常有两种方式,一种就是resultType;另一种就是resultMap:1、resultType:当使用resultType...
    99+
    2020-09-23
    java教程 ResultMap ResultType 区别
  • int和Integer的区别
    int和Integer的区别Integer是int的包装类,int则是java的一种基本数据类型 Integer变量必须实例化后才能使用,而int变量不需要 Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针...
    99+
    2018-02-20
    java教程 int Integer 区别
  • OLTP和OLAP的区别
    OLTP和OLAP的区别 联机事务处理OLTP(on-line transaction processing) 主要是执行基本日常的事务处理,比如数据库记录的增删查改。比如在银行的一笔交易记录,就是一个典型...
    99+
    2024-04-02
  • _OFFLINE_ROLLBACK_SEGMENTS 和 _CORRUPTED_ROLLBACK_SEGMENTS的区别
    _OFFLINE_ROLLBACK_SEGMENTS 和 _CORRUPTED_ROLLBACK_SEGMENTS的这两个参数可以强制打开数据库,但是open后,最好导出,重建库,然后再导入。对这两个参数不...
    99+
    2024-04-02
  • Latch和Lock的区别
    Latch是Oracle提供的轻量级锁资源,他用于快速,短时间的锁定资源,防止多个并发进程同时修改访问某个共享资源,他只工作在内存中, 我们可以不大准确的说,内存中资源的锁叫latch,数据库对象...
    99+
    2024-04-02
  • redis和memcached的区别
    1、Redis和Memcache都是将数据存放在内存中,都是内存数据库。不过memcache还可用于缓存其他东西,例如图片、视频等等;2、Redis不仅仅支持简单的k/v类型的数据,同时还提供list,se...
    99+
    2024-04-02
  • Rowid和Rownum的区别
    Rowid和Rownum对于数据库开发人员来说基本很少用到,因为在企业数据库开发中大多都是进行数据批处理,但是对于其他数据库人员来说还是会用到的。rowid和rownum都是虚列,但含义完全不同。rowid...
    99+
    2024-04-02
  • myisam和innodb的区别
    MyISAM是MySQL的默认数据库引擎(5.5版之前),由早期的ISAM(Indexed Sequential Access Method:有索引的顺序访问方法)所改良。虽然性能极佳,但却有一个缺点:不支...
    99+
    2024-04-02
  • redo和undo的区别
    redo--> undo-->datafile insert一条记录时, 表跟undo的信息都会放进 redo 中, 在commit 或之前, redo 的信息会放进硬盘上. 故障时, re...
    99+
    2024-04-02
  • DIV和SPAN的区别
    这篇文章主要介绍“DIV和SPAN的区别”,在日常操作中,相信很多人在DIV和SPAN的区别问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”DIV和SPAN的区别”的疑惑有所帮...
    99+
    2024-04-02
  • redis和mongodb的区别
    redis和mongodb的区别:1、在TPS方面redis性能要比mongodb大;2、redis操作更加便利,拥有较少的网络IO次数;3、mongoDB适合大数据量的存储,而redis能够存储的数据比mongoDB要少点;4、redis...
    99+
    2024-04-02
  • mongodb和sqlite的区别
    mongodb和sqlite的区别:1、mongodb是一个非关系型数据库,而sqlite是基于文件的关系型数据库;2、mongodb只能按key进行读写,而sqlite能够支持sql进行读写操作;3、sqlite非常灵巧轻量、性能好,而m...
    99+
    2024-04-02
  • mongodb和hbase的区别
    mongodb和hbase的区别:1、mongodb bson属于文档型数据库,而hbase是列式数据库;2、mongodb主键是“_id”,而hbase主键是row key,能够是任意字符;3、mongodb支持二级索引,而hbase本身...
    99+
    2024-04-02
  • mongodb和NoSql的区别
    mongodb和NoSql的区别:两者没有什么区别可言,mongodb属于NoSql的一种,NoSql是指非关系型数据库的意思,而在mongodb是一个介于关系数据库和非关系数据库之间的产品,其中非关系数据库当中功能最丰富,因此mongod...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作