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

Sah*_* Mj 14 xml android gravity layout-gravity

可能重复:
Android - gravity和layout_gravity

我一直在研究android xml的.我习惯于android:layout_gravity="center"在特定位置对齐组件.

现在有一天,当我在像Activity这样Dialog上工作时,我遇到了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>
Run Code Online (Sandbox Code Playgroud)

它使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>
Run Code Online (Sandbox Code Playgroud)

它将LinearLayout自身对准中心.

现在我的问题是:

  1. 如果我在这些假设中是正确的,那么是否gravity适用于子组件并且layout_gravity是父组件.
  2. 何时选择gravity结束layout_gravity.

到目前为止,我已经找到了很多关于xml的解释.我想听听更好的解释.如果我错了,请告诉我

wsa*_*lle 11

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