天天看点

安卓16:Android studio gravity和layout_gravity的区别

一、gravity和layout_gravity相同处

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

二、gravity和layout_gravity的不同处

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

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

【注意1】如果要用gravity属性,组件的layout_width和layout_height不能设置为

wrap_content

。此时设置的gravity属性没有效果,因为组件包裹着内容,无论设置什么,也都不能有改变

【注意2】外部viewGroup类布局组件设置gravity为center,内部组件例如TextView,在外部布局的中间位置。TextView没有设置gravity属性,则自身内部的文字在开始位置。

安卓16:Android studio gravity和layout_gravity的区别

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

【注意4】对于LinertLaout布局:组件layout_gravity的center值和orientation的定位方向有关。

当设置为horizontal时,LinearLayout中的组件按照横排排列。当设置layout_gravity属性为center值时,组件就在垂直方向处于中间位置,即最中间的横排。

安卓16:Android studio gravity和layout_gravity的区别

当设置为vertical时,LinearLayout中的组件按照竖排排列。当设置layout_gravity属性为center值时,组件就在水平方向处于中间位置,即最中间的一列。

安卓16:Android studio gravity和layout_gravity的区别

继续阅读