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

居中中心_垂直center_horizontal等。

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

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


当前回答

重力:允许您移动容器内的内容。(如何放置子视图)。

重要提示:(在可用空间内沿X轴或Y轴移动)。

示例:假设您要使用LinearLayout(Height:match_parent,Width:match_parent)作为根级元素,那么您将拥有完整的帧空间;并且子视图表示LinearLayout内的2个文本视图(Height:wrap_content,Width:wrap-content)可以使用父视图上的重力值沿x/y轴移动。

Layout_Gravity:允许您仅沿x轴覆盖父重力行为。

重要提示:(在可用空间内沿X轴移动[覆盖])。

示例:如果您记住前面的示例,我们知道重力使我们能够沿着x/y轴移动,即:;将TextViews放置在LinearLayout中。让我们假设LinearLayout指定重力:中心;这意味着每个TextView都需要垂直和水平居中。现在,如果我们希望其中一个TextView向左/向右移动,我们可以使用TextView上的layout_gravity覆盖指定的重力行为。

另外:如果你深入挖掘,你会发现TextView中的文本充当子视图;因此,如果在TextView上应用重力,TextView内的文本将四处移动。(整个概念也适用于此)

其他回答

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

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

Gravity和layout_Gravity都是XML属性。

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

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

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

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

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

他们的名字可以帮助您:

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

这里有一个例子。

重力:允许您移动容器内的内容。(如何放置子视图)。

重要提示:(在可用空间内沿X轴或Y轴移动)。

示例:假设您要使用LinearLayout(Height:match_parent,Width:match_parent)作为根级元素,那么您将拥有完整的帧空间;并且子视图表示LinearLayout内的2个文本视图(Height:wrap_content,Width:wrap-content)可以使用父视图上的重力值沿x/y轴移动。

Layout_Gravity:允许您仅沿x轴覆盖父重力行为。

重要提示:(在可用空间内沿X轴移动[覆盖])。

示例:如果您记住前面的示例,我们知道重力使我们能够沿着x/y轴移动,即:;将TextViews放置在LinearLayout中。让我们假设LinearLayout指定重力:中心;这意味着每个TextView都需要垂直和水平居中。现在,如果我们希望其中一个TextView向左/向右移动,我们可以使用TextView上的layout_gravity覆盖指定的重力行为。

另外:如果你深入挖掘,你会发现TextView中的文本充当子视图;因此,如果在TextView上应用重力,TextView内的文本将四处移动。(整个概念也适用于此)