gravity跟layout_gravity
时间: 2024-10-29 11:25:12 浏览: 7
在Android布局设计中,`gravity` 和 `layout_gravity` 都是用于控制组件在容器内的对齐方式,但它们的作用范围和用法略有不同。
1. **gravity**:
这个属性通常应用在视图(如LinearLayout、RelativeLayout等)上,它决定了视图内部元素的位置,比如文字、图片等内容的对齐方式。`gravity` 可以指定组件相对于其父容器的方向,包括垂直方向上的 `top`, `bottom`, `center_vertical` 和水平方向上的 `left`, `right`, `center_horizontal` 等。此外还有 `center`, `start`, `end` 和 `fill_horizontal`、`fill_vertical` 等组合值。
2. **layout_gravity**:
而 `layout_gravity` 主要是用于规则视图(如LinearLayout或FrameLayout)或 FrameLayout 子项的,它是从 `gravity` 派生而来的,主要用于设置子视图在整个容器中的位置。对于非根视图(即不是屏幕本身),`layout_gravity` 更常用于指定视图如何在其父容器中居中或者沿着某个轴线对齐。
举个例子,如果你有一个LinearLayout作为父容器,里面有一个TextView,你可能会这样做:
```xml
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center" />
```
或者
```xml
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" />
</LinearLayout>
```
在这里,`gravity` 会作用于TextView的内容,使其居中;而 `layout_gravity` 则会让LinearLayout整体在父容器中居中。
阅读全文