思维导图可在幕布找到

1. 基础

如果在相对布局里,控件没有指明相对位置,则默认都是在相对布局的左上角:

gravity

gravity属性用来设置容器内组件的对齐方式

效果为

2. 根据兄弟控件定位

2.1 相对兄弟组件的位置

android:layout_above:// 参考的兄弟控件上边android:layout_below:// 参考的兄弟控件下边android:layout_toLeftOf // 参考的兄弟控件的左边android:layout_toRightOf // 参考的兄弟控件右边

代码示例

android:layout_below等属性通过制定控件的id来选择需要参考的兄弟组件,即@id/firstText

显示的效果为

2.2 对齐相对组件

对齐兄弟相对组件的有四个属性,为android:layout_align${方向}

android:layout_alignTop // 对齐参考组件的上边界android:layout_alignBottom // 对齐参考组件的下边界android:layout_alignLeft // 对齐参考组件的左边界android:layout_alignRight  // 对齐参考组件的右边界

android:layout_alignTop等属性同样是通过制定控件的ID来设置参考的组件的边界线:

代码示例1

效果为

代码实例2

效果为

3. 根据父控件定位

3.1 与父控件的四个边缘对齐

与父控件的边缘对齐的属性由android:layout_alignParent${方向}组成

android:layout_alignParentTop  // 顶部对齐于父控件android:layout_alignParentBottom // 底部对齐于父控件android:layout_alignParentLeft // 左对齐于父控件android:layout_alignParentRight // 右对齐于父控件

需要注意的是,这些属性是通过布尔值来设置是否对齐于父控件的某个方向的:

    

效果为:

除此之外还有layout_alignParentLeftlayout_alignParentTop

3.2 对齐至父控件的中央

对齐至父控件中央的属性可以用来设置居中的布局位置:

android:layout_centerHorizontal  // 水平居中android:layout_centerVertical // 垂直居中android:layout_centerInParent // 水平且垂直居中,处于父组件的正中央位置

代码示例

同样,这些属性也是通过设置的值也是布尔类型:

    

效果为:

4. 其他

对齐至控件的基准线

如果没有使用对齐基准线,那么当Hello的字体的大于world时,world则无法和hello在同一基准线上:

通过给world的TextView添加layout_alignBaseline属性来实现对齐firstText控件的基准线:

android:layout_alignBaseline="@+id/firstText"

效果为:

5. 实例

用相对布局来完成经典的梅花布局

                                        

效果图为

参考资料

2.2.2 RelativeLayout(相对布局)

更多相关文章

  1. 【Android(安卓)初学】3、控件布局初步
  2. Android布局之相对布局——RelativeLayout
  3. 看Google官方的Android开发文档的一些收获
  4. Android(安卓)自学之列表选择框Spinner
  5. Android(安卓)初始化Setup Wizard——Provision
  6. 三款Android炫酷Loading动画组件推荐
  7. Android(安卓)ListView异步加载图片乱序问题,原因分析及解决方案
  8. android 弹出日期滑动选择框,日期滚动滑动选择
  9. Android(安卓)ListView组件中androiddrawSelectorOnTop含义

随机推荐

  1. vitamio视频播放报错: java.lang.Unsatis
  2. 【安卓学习总结】安卓开发
  3. Android(安卓)listview适配器
  4. Android(安卓)地址选择器仿京东;
  5. Android中的drawable像素密度适配详解
  6. Android败笔之ListView设置分割线颜色
  7. Android(安卓)- 修改最小SDK版本(minSdkV
  8. Android(安卓)ObjectAnimator基础用法
  9. Android(安卓)向服务器发送get请求乱码问
  10. 我拆了个轮子--ANDROID WHEEL的实现(二)