一、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

Android gravity和layout_gravity的区别相关推荐

  1. android 中 gravity 和 layout_gravity 的区别

    文章转自:http://blog.csdn.net/feng88724/article/details/6333809 在进行UI布局的时候,可能经常会用到 android:gravity  和 an ...

  2. android gravity和layout_gravity区别

    gravity:属性是指定当前控件内容显示的位置. 里面有:left 左 ,right 右, top 上, bottom下 layout_gravity:属性是指定当前控件在父元素的位置 里面有 to ...

  3. Android --- 布局属性gravity和layout_gravity的区别

    一.gravity和layout_gravity相同处 两者都是设置对齐方式的属性.内部的属性值相同. 根据英文意思也能理解其中的意思.如center_horizontal表示在水平方向上的位置为中间 ...

  4. gravity与Layout_gravity的区别

    区别 gravity 这个英文单词是重心的意思,在这里就表示停靠位置的意思. layout_gravity 是LinearLayout 子元素的特有属性. 对于layout_gravity, 该属性用 ...

  5. java gravity_Android属性gravity与layout_gravity的区别

    在Android的LinearLayout布局中,有两个gravity属性,都是设置组件的位置,它们是android:gravity和android:layout_gravity,那么它们之间有什么区 ...

  6. gravity 和 layout_gravity的区别

    android:gravity 属性是对该view 内容的限定.比如一个button 上面的text. 你可以设置该text 在view的靠左,靠右等位置.该属性就干了这个. android:layo ...

  7. gravity和layout_gravity的区别(有时使用layout_gravity=center时失效的原因)

    gravity: 是对view控件本身来说的,是用来设置view本身的内容应该显示在view的什么位置,默认值是左侧.也可以用来设置布局中的控件位置. layout_gravity: 作用的是声明该属 ...

  8. android:layout_gravity 和 android:gravity 的区别

    gravity 这个英文单词是重心的意思,在这里就表示停靠位置的意思. android:layout_gravity 和 android:gravity 的区别 从名字上可以看到,android:gr ...

  9. android:layout_gravity和android:gravity属性的区别

    android:gravity / android:layout_gravity区别: android:gravity 是设置该view里面的内容相对于该view的位置,例如设置button里面的te ...

最新文章

  1. scrapy的几个文件属性
  2. python【数据结构与算法】快速幂and矩阵快速幂取模(看不懂你来打我)
  3. SpringCloud--Eureka服务注册与发现 Eureka 集群搭建 详细案例!!!
  4. 程序人生:无他,唯心向尔
  5. VC6.0 DLL项目与WINDOWS项目的转换
  6. [SQLITE_READONLY] Attempt to write a readonly databse (attempt to write a readonly database)
  7. select count(*)和select count(1)
  8. Linux Kernel 5.8 发布,华为内核代码贡献全球持续领先
  9. 2006无法登录mysql_错误2006(HY000):MySQL服务器消失了
  10. 【单片机】keil 2032
  11. Deep Glow for mac(AE高级辉光特效插件)
  12. 计算机音乐转MP3,怎么把歌曲转换成mp3格式_教你把歌曲转换成mp3格式的方法
  13. 世界各主要国家及组织的大数据战略
  14. Linux下软连接(softlink)和硬连接(hardlink)的区别
  15. python3连接mysql获取ansible动态inventory脚本
  16. Android 阿里云镜像整理
  17. 实践一 网络攻防环境的搭建
  18. Ubuntu16.04配置deeplabv3+的pytorch版本
  19. word如何关闭批注模式【教程】
  20. 软件技术部第一次机器学习培训

热门文章

  1. Arrays.sort()方法
  2. 方法重写(Java篇)
  3. 权限柜作用_超市条码寄存柜使用要点
  4. 基于安卓手机的辅助驾驶APP开发
  5. 如何提升github的clone速度(简单粗暴,亲测有效)
  6. adb安装apk报错Failure [INSTALL_FAILED_INVALID_URI]
  7. 光流法目标跟踪原理(不带公式)
  8. 【知识蒸馏】ICCV21_Channel-wise Knowledge Distillation for Dense Prediction
  9. 经常刷同一台POS机,信用卡会被降额吗?
  10. 《城邦暴力团》:一部奇书、反书、隐书