我知道我们可以为android设置以下值:gravity和android:layout_gravity财产:

居中中心_垂直center_horizontal等。

但我对这两者都感到困惑。

android:gravity和android:layout_gravity的用法有什么区别?


当前回答

不同之处在于

android:layout_gravity是视图的外部重力。指定视图应接触其父对象边界的方向。

android:重力是该视图的内部重力。指定其内容应对齐的方向。

HTML/CSS等价物

(如果您来自web开发背景)

Android                 | CSS
————————————————————————+————————————
android:layout_gravity  | float
android:gravity         | text-align

帮助你记住的简单技巧

将布局重力作为“外部重力”。

其他回答

他们的名字可以帮助您:

android:gravity设置其使用的视图的内容(即其子视图)的重力。android:layout_gravity设置视图或布局相对于其父对象的重力。

这里有一个例子。

从我可以收集到的layout_gravity是该视图在其父视图中的重力,而重力是该视图中的子视图的重力。

我认为这是正确的,但找到答案的最佳方法是四处游玩。

重力——应用于其自身的视图。

布局重力---应用于与其父级相关的视图。

两者的基本区别在于-

android:gravity用于视图的子元素。

android:layoutgravity用于相对于父视图的此元素。

我在Sandip的博客上看到了一些我差点错过的东西,解决了我的问题。他说layout_gravity不适用于LinearLayout。

如果你使用的是LinearLayout,而重力设置让你发疯(像我一样),那么就切换到其他设置。

我实际上切换到了RelativeLayout,然后在2个包含的TextView上使用layout_alignParentLeft和layout_aignParentRight,使它们在一行上向左和向右移动。