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

一、gravity和layout_gravity相同处

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

Android --- 布局属性gravity和layout_gravity的区别_第1张图片

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

 

 二、gravity和layout_gravity的不同处

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

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

具体参考如下

1、gravity效果

①TextView

  【代码】

复制代码
1 
复制代码

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

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

【效果】

Android --- 布局属性gravity和layout_gravity的区别_第2张图片

 

②LinearLayout

【代码】

复制代码
 1     
 7         
13     
复制代码

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

【效果】

Android --- 布局属性gravity和layout_gravity的区别_第3张图片

 

2、layout_gravity效果

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

具体实例如下

 ①LinearLayout

复制代码
 1 
 6         
13     
复制代码

【效果】

Android --- 布局属性gravity和layout_gravity的区别_第4张图片

 

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

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

Android --- 布局属性gravity和layout_gravity的区别_第5张图片

 

②FrameLayout(帧布局)

【代码】

复制代码
 1     
 5         
12     
复制代码

【效果】

Android --- 布局属性gravity和layout_gravity的区别_第6张图片

 

你可能感兴趣的:(Android,项目开发笔记,gravity,layout_gravity,android,布局属性)