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

居中中心_垂直center_horizontal等。

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

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


当前回答

重力用于设置视图中的文本对齐方式,但layout_Gravity用于设置视图本身。举个例子,如果你想对齐editText中的文本,然后使用重力,你想对齐这个editText或任何按钮或任何视图,然后使用layout_gravity,所以非常简单。

其他回答

不同之处在于

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

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

HTML/CSS等价物

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

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

帮助你记住的简单技巧

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

记住这一点的一个简单技巧是,地心引力适用于地球内部的我们。所以,安卓:重力是指内部视图。

记住layout_gravity中的out,这将帮助您记住android:layout_ggravity将指视图外部

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

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

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

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

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

Gravity和layout_Gravity都是XML属性。

android:gravity属性用于排列视图中内容的位置(例如Button小部件中的文本)。

android:layout_gravity用于安排整个视图相对于其容器的位置。

有关详细信息,请参阅此链接。