1. 子控件的位置
- 在 系统的
attrs.xml
中的定义如下
<!-- 1. RelativeLayout -->
<declare-styleable name="RelativeLayout">
<attr name="gravity" />
<!-- Indicates what view should not be affected by gravity. -->
<attr name="ignoreGravity" format="reference" />
</declare-styleable>
使用
gravity
属性可以设置控件中的子控件的排放位置.比如 : top, bottom, left, right 等
2. RelativeLayout特有的属性
- 外部对齐
<!-- 设置当前View的右边和参考View的左边对齐 -->
<attr name="layout_toLeftOf" format="reference" />
<attr name="layout_toStartOf" format="reference" />
<!-- 设置当前View的左边和参考View的右边对齐 -->
<attr name="layout_toRightOf" format="reference" />
<attr name="layout_toEndOf" format="reference" />
<!-- 设置当前View的上边和参考View的下边对齐 -->
<attr name="layout_above" format="reference" />
<!-- 设置当前View的上边和参考View的下边对齐 -->
<attr name="layout_below" format="reference" />
<!-- 设置当前View的基线和参考View的基线对齐 -->
<attr name="layout_alignBaseline" format="reference" />
- 内部对齐
<!-- 设置当前View的左边和参考View的左边对齐 -->
<attr name="layout_alignLeft" format="reference" />
<attr name="layout_alignStart" format="reference" />
<!-- 设置当前View的上边和参考View的上边对齐 -->
<attr name="layout_alignTop" format="reference" />
<!-- 设置当前View的右边和参考View的右边对齐 -->
<attr name="layout_alignRight" format="reference" />
<attr name="layout_alignEnd" format="reference" />
<!-- 设置当前View的底部边和参考View的底部边对齐 -->
<attr name="layout_alignBottom" format="reference" />
- 和父控件的关系
<!-- 和父控件左边对齐 -->
<attr name="layout_alignParentLeft" format="boolean" />
<attr name="layout_alignParentStart" format="boolean" />
<!-- 和父控件上边对齐 -->
<attr name="layout_alignParentTop" format="boolean" />
<!-- 和父控件右边对齐 -->
<attr name="layout_alignParentRight" format="boolean" />
<attr name="layout_alignParentEnd" format="boolean" />
<!-- 和父控件下边对齐 -->
<attr name="layout_alignParentBottom" format="boolean" />
<!-- 在父控件完全居中 -->
<attr name="layout_centerInParent" format="boolean" />
<!-- 在父控件中水平居中 -->
<attr name="layout_centerHorizontal" format="boolean" />
<!-- 在父控件中垂直居中 -->
<attr name="layout_centerVertical" format="boolean" />
<!-- layout_toLeftOf, layout_toRightOf, 没有了就以父控件为参考 -->
<attr name="layout_alignWithParentIfMissing" format="boolean" />
- Margin相关
<declare-styleable name="ViewGroup_MarginLayout">
<attr name="layout_width" />
<attr name="layout_height" />
<!-- 四个方向的间距 -->
<attr name="layout_margin" format="dimension" />
<!-- 左侧间距 -->
<attr name="layout_marginLeft" format="dimension" />
<attr name="layout_marginStart" format="dimension" />
<!-- 上册间距 -->
<attr name="layout_marginTop" format="dimension" />
<!-- 右侧间距 -->
<attr name="layout_marginRight" format="dimension" />
<attr name="layout_marginEnd" format="dimension" />
<!-- 下册间距 -->
<attr name="layout_marginBottom" format="dimension" />
</declare-styleable>