正在加载
请稍等

菜单

红楼飞雪 梦

15526773247

文章

Home Android 布局管理器 『RelativeLayout』
Home Android 布局管理器 『RelativeLayout』

Android 布局管理器 『RelativeLayout』

未分类 by

在相对布局(RelativeLayout)中,子控件的位置是相对兄弟控件或父容器而决定的。出于性能考虑,在设计相对布局时,要按照控件之间的依赖关系排列。如View A的位置相当于View B来决定,则需要保证布局文件中View B在View A的前面。

在进行相对布局时,用到的布局属性有很多,首先来看属性值为true或false的属性,见下表:

相对布局中取值为true或false的属性列表

属性名称 属性说明
android:layout_centerHorizontal 当前控件位于父控件的横向中间位置
android:layout_centerVertical 当前控件位于父控件的纵向中间位置
android:layout_centerInParent 当前控件位于父控件的中央位置
android:layout_alignParentBottom 当前控件底端与父控件底端对齐
android:layout_alignParentLeft 当前控件左侧与父控件左侧对齐
android:layout_alignParentRight 当前控件右侧与父控件右侧对齐
android:layout_alignParentTop 当前控件顶端与父控件顶端对齐
android:layout_alignWithParentIfMissing 参照控件不存在或不可见时参照父控件

接下来再来看看属性值为其他控件id的属性,见下表:

相对布局中取值为其他控件id的属性及其说明

属性名称 属性说明
android:layout_toRightOf 使当前控件位于给出id控件的右侧
android:layout_toLeftOf 使当前控件位于给出id控件的左侧
android:layout_above 使当前控件位于给出id控件的上方
android:layout_below 使当前控件位于给出id控件的下方
android:layout_alignTop 使当前控件的上边界与给出id控件的上边界对齐
android:layout_alignBottom 使当前控件的下边界与给出id控件的下边界对齐
android:layout_alignLeft 使当前控件的左边界与给出id控件的左边界对齐
android:layout_alignRight 使当前控件的右边界与给出id控件的右边界对齐

最后介绍的是属性值以像素为单位的属性及说明,见下表:

相对布局中取值为像素的属性及说明

属性名称 属性说明
android:layout_marginLeft 当前控件左侧的留白
android:layout_marginRight 当前控件右侧的留白
android:layout_marginTop 当前控件上方的留白
android:layout_marginBottom 当前控件下方的留白
android:layout_margin 当前控件上下左右四个方向的留白

上面的取值为像素的属性这里再补充几个:

android:paddingLeft                                        当前控件中内容距离控件左边留白

android:paddingRight                                      当前控件中内容距离控件右边留白

android:paddingTop                                        当前控件中内容距离控件顶部留白

android:paddingBottom                                   当前控件中内容距离控件底部留白

需要注意的是:在进行相对布局时要避免出现循环依赖,例如设置相对布局在父容器中的排列方式为WRAP_CONTENT,就不能再将相对布局的子控件设置为ALIGN_PARENT_BOTTOM。因为这样会造成子控件和父控件相互依赖和参照的错误。

 

其中Main.xml代码如下:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
view plain   copy
    <?xml version="1.0" encoding="utf-8"?> 
    <!-- 声明一个相对布局 -->
    <RelativeLayout
        android:id="@+id/RelativeLayout01"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="#ffffff"
        xmlns:android="http://schemas.android.com/apk/res/android"
         
        <!-- 第一个ImageView控件,位于父控件的中央位置 -->
        <ImageView
            android:id="@+id/ImageView01"
            android:background="@drawable/center"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
        </ImageView
         
        <!-- 第二个ImageView控件,位于第一个控件的右侧 -->
        <ImageView
            android:id="@+id/ImageView02"
            android:background="@drawable/down"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@id/ImageView01"
            android:layout_alignTop="@id/ImageView01"
        </ImageView
         
        <!-- 第三个ImageView控件,位于第一个控件的上方 -->
        <ImageView
            android:id="@+id/ImageView03"
            android:background="@drawable/up"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_above="@id/ImageView01"
            android:layout_alignLeft="@id/ImageView01"
        </ImageView>   
    </RelativeLayout

Activity代码为:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
    package com.sunchis; 
     
    import android.app.Activity; 
    import android.os.Bundle; 
     
    public class Android extends Activity {  
        @Override
        public void onCreate(Bundle savedInstanceState) { 
            super.onCreate(savedInstanceState); 
            setContentView(R.layout.main);          //设置屏幕 
        
    

 

 

16 2015-06

 

我要 分享

 

 

本文 作者

 

相关 文章