Android组件----RelativeLayout相对布局的属性详解

一、常用属性:

1、第一类:属性值为true或false

android:layout_centerHrizontal    相对于父元素水平居中

android:layout_centerVertical       相对于父元素垂直居中

android:layout_centerInparent         相对于父元素完全居中

 

android:layout_alignParentBottom         贴紧父元素的下边缘(align:对齐)

android:layout_alignParentLeft           贴紧父元素的左边缘

android:layout_alignParentRight            贴紧父元素的右边缘(默认值为false)

android:layout_alignParentTop               贴紧父元素的上边缘

android:layout_alignWithParentIfMissing     如果对应的兄弟元素找不到的话就以父元素做参照物

 

2、第二类:属性值必须为id的引用名"@id/id-name"

android:layout_below              在某元素的下方

android:layout_above              在某元素的的上方

android:layout_toLeftOf       在某元素的左边

android:layout_toRightOf     在某元素的右边

 

android:layout_alignTop      本元素的上边缘和某元素的的上边缘对齐

android:layout_alignLeft       本元素的左边缘和某元素的的左边缘对齐

android:layout_alignBottom   本元素的下边缘和某元素的的下边缘对齐

android:layout_alignRight    本元素的右边缘和某元素的的右边缘对齐

 

3、第三类:属性值为具体的像素值,如30dp(外边距和内边距

android:layout_margin           外边距(margin:边缘)

android:layout_marginTop           上外边距

android:layout_marginBottom      下外边距 

android:layout_marginLeft           左外边距

android:layout_marginRight         右外边距

 

android:padding          内边距(padding:填充)

android:paddingTop         上内边距

android:paddingBottom       下内边距

android:paddingLeft         左内边距

android:paddingRight              右内边距

 

4、第四类:android4.2新增属性 

android:layout_alignStart           两个控件开始对齐

android:layout_alignEnd                 两个控件结束对齐

android:layout_alignParentStart      子控件和父控件开始对齐

android:layout_alignParentEnd    子控件和父控件结束对齐

 

二、外边距和内边距的解释:

来看下面这张图:

 

例如:当在布局文件中,

将第一个TextView加入如下代码:(注:margin的意思是“边缘”)

android:layout_margin="30dp"

将第二个TextView加入如下代码:(注:padding的意思是“填充”)

android:padding="20dp"

最终效果如下: 

 

三、对齐至控件的基准线:

android:layout_alignBaseline      与某元素的基准线对齐

什么是基准线?

基准线:为了保证印刷字母的整齐而划定的线。

上图中的第三条线就是基准线。

完整版代码举例:

复制代码
 1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     xmlns:tools="http://schemas.android.com/tools"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"  >
 5     <TextView
 6         android:id="@+id/tv1"
 7         android:layout_width="wrap_content"
 8         android:layout_height="wrap_content"
 9         android:background="#FFE4E1"
10         android:textSize="30dp"
11         android:text="shengmingyihao" />
12     
13      <TextView
14         android:id="@+id/tv2"
15         android:layout_width="wrap_content"
16         android:layout_height="wrap_content"
17         android:background="#D3D3D3"
18         android:layout_toRightOf="@id/firstView"
19  android:layout_alignBaseline="@id/tv1"
20         android:text="smyhvae" />   
21 </RelativeLayout>
复制代码

上方代码的第19行就是将tv2对齐至tv1的基准线。

显示效果如下:

上图中绿色的虚线即为基准线。

 

三、其他属性:

1、EditText控件:

android:hint   设置EditText为空时输入框内的提示信息。

2、android:gravity

android:gravity  该属性是对该view里面的内容的限定。比如一个button里面的text,你可以设置该text在view的靠左、靠右等位置。

以button为例:

  android:gravity="right"      可以让button里面的文字靠右

  android:gravity="top"        可以让编辑框EditText的光标置于左上方

3、android:gravity和线性布局中的android:layout_gravity区别:

  • gravity    控制当前控件里面的内容显示区域
  • 线性布局中的layout_gravity    当前控件在父元素的位置

比如弄个最外布局,然后里面包了几个布局,如果要使这几个布局都靠底,就可以在最外布局的属性里设置androi:gravity="botton"  因为gravity是对里面的内容起作用。