重力和layout_gravity之间的确切区别是什么

时间:2012-12-20 05:29:04

标签: android xml gravity layout-gravity

  

可能重复:
  Android - gravity and layout_gravity

我一直在研究android xml。我使用android:layout_gravity="center"来对齐特定位置的组件。

现在有一天,当我正在处理像这样的对话时,我遇到了android:gravity="center"。我发现的是gravity用于将child与特定位置对齐。

我会分享一个例子,

机器人:比重= “中心”

<LinearLayout 
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center_vertical"
    android:orientation="vertical" >
            <EditText
                android:id="@+id/enterNumberEdit"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_margin="10dp"
                android:hint="Enter No." >

                <requestFocus />
            </EditText>
            </LinearLayout>

它使LinearLayout的孩子在中心对齐。

机器人:layout_gravity = “中心”

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="center"
    android:orientation="vertical"
    android:background="@drawable/dialog_background" >
</LinearLayout>

它将LinearLayout本身对齐在中心。

现在我的问题是:

  1. 如果我在这些假设中是正确的,那么gravity是否适用于子组件而layout_gravity是否适用于父组件。
  2. 何时选择gravity而不是layout_gravity
  3. 到目前为止,我已经找到了很多关于xml的解释。我想听听更好的解释。如果我错了,请告诉我

3 个答案:

答案 0 :(得分:11)

  1. 是的,您的理解是正确的。任何layout_属性都会向父视图提供说明。
  2. 通常,如果某个视图占据其“父级”的整个宽度/高度,那么您不需要指定layout_gravity,您可能会发现gravity更有用。如果您的视图没有占据其“父级”的整个维度,则可能需要根据所需的外观对齐它。

答案 1 :(得分:4)

他们的名字应该对你有帮助:
android:gravity设置其使用的View内容的严重性 android:layout_gravity设置其父级ViewLayout的严重性。

有关详细信息,请访问this site

答案 2 :(得分:1)

android:gravity设置其使用的View内容的重力。

android:layout_gravity在其父级中设置视图或布局的重力。