相对布局(RelativeLayout),相对布局容器内子组件的位置总是相对兄弟组件、父容器来决定的。

RelativeLayout的XML属性及相关方法说明

XML属性 相关方法 说明
android:gravity setGravity(int) 设置该布局容器内部各子组件的对齐方式
android:ignoreGravity setIgnoreGravity(int) 设置那个组件不受Gravity的影响

RelativeLayout.LayoutParams里只能设为boolean值的属性:

  android:layout_centerHrizontal 水平居中
  android:layout_centerVertical 垂直居中
  android:layout_centerInparent 相对于父元素完全居中
  android:layout_alignParentBottom 贴紧父元素的下边缘
  android:layout_alignParentLeft 贴紧父元素的左边缘
  android:layout_alignParentRight 贴紧父元素的右边缘
  android:layout_alignParentTop 贴紧父元素的上边缘
  android:layout_alignWithParentIfMissing 如果对应的兄弟元素找不到的话就以父元素做参照物

RelativeLayout.LayoutParams里只能设为其他UI组件ID的属性:

android:layout_below 在某元素的下方
android:layout_above 在某元素的的上方
android:layout_toLeftOf 在某元素的左边
android:layout_toRightOf 在某元素的右边
android:layout_alignTop 本元素的上边缘和某元素的的上边缘对齐
android:layout_alignLeft 本元素的左边缘和某元素的的左边缘对齐
android:layout_alignBottom 本元素的下边缘和某元素的的下边缘对齐
android:layout_alignRight 本元素的右边缘和某元素的的右边缘对齐

除了这些,RelativeLayout.LayoutParams还继承了android.view.ViewGroup.MarginLayoutParams,所以RelativeLayout布局容器中每个组件也可以指定android.view.ViewGroup.MarginLayoutParams所支持的XML属性。

下面有个用相对布局编写的范例:

layout/main.xml

 1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 2     xmlns:tools="http://schemas.android.com/tools" 3     android:layout_width="fill_parent" 4     android:layout_height="fill_parent"> 5      6     <!-- 定义该组件位于父容器中间 -->     7     <TextView android:id="@+id/view01" 8         android:layout_width="wrap_content" 9         android:layout_height="wrap_content"10         android:background="@drawable/leaf"11         android:layout_centerInParent="true"/><!-- 组件居中:android:layout_centerInParent="true" -->12     13     <!-- 定义该组件位于view01组件的上方 -->14     <TextView 15         android:id="@+id/view02"16         android:layout_width="wrap_content" 17         android:layout_height="wrap_content" 18         android:background="@drawable/leaf"19         android:layout_above="@id/view01"  20         android:layout_alignLeft="@id/view01"21         />22     <!-- 定义该组件位于view01组件的下方 -->23     <TextView 24         android:id="@+id/view03"25         android:layout_width="wrap_content" 26         android:layout_height="wrap_content" 27         android:background="@drawable/leaf"28         android:layout_below="@id/view01"29         android:layout_alignLeft="@id/view01"30         />31     <!-- 定义该组件位于view01组件的左边 -->32     <TextView 33         android:id="@+id/view04"34         android:layout_width="wrap_content" 35         android:layout_height="wrap_content" 36         android:background="@drawable/leaf"37         android:layout_toLeftOf="@id/view01"38         android:layout_alignTop="@id/view01"39         />40     <!-- 定义该组件位于view01组件的右边 -->41     <TextView 42         android:id="@+id/view05"43         android:layout_width="wrap_content" 44         android:layout_height="wrap_content" 45         android:background="@drawable/leaf"46         android:layout_toRightOf="@id/view01"47         android:layout_alignTop="@id/view01"48         />        49         50 </RelativeLayout>

com.example.relativelayouttest.MainActivity.java主程序

package com.example.relativelayouttest;import android.support.v7.app.ActionBarActivity;import android.support.v7.app.ActionBar;import android.support.v4.app.Fragment;import android.os.Bundle;import android.view.LayoutInflater;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.ViewGroup;import android.os.Build;public class MainActivity extends ActionBarActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);
//setPadding相当于css里面的padding findViewById(R.id.view01).setPadding(
5, 5 , 5 , 5); findViewById(R.id.view02).setPadding(5, 5 , 5 , 5); findViewById(R.id.view03).setPadding(5, 5 , 5 , 5); findViewById(R.id.view04).setPadding(5, 5 , 5 , 5); findViewById(R.id.view05).setPadding(5, 5 , 5 , 5); }}

更多相关文章

  1. Android SwipeRefreshLayout 下拉刷新组件的使用
  2. Android桌面组件widget与快捷方式shortcut
  3. android 基础知识 四大组件之Activity(一)
  4. Android 桌面组件【widget】 初学
  5. android:四大组件
  6. 【 Android 10 四大组件 】系列 -- Activity 的 "启动流程"
  7. Android学习笔记九:基本视图组件:Spinner
  8. Android系列教程之九:GridView组件的使用

随机推荐

  1. android开发【六】(基于android studio3.2
  2. Android CardView设置成普通的Framelayou
  3. Setting up ccache on android 4.0.3
  4. Eclipase插件下载地址
  5. Android放大镜的实现
  6. Android中如何判断内存卡是否存在
  7. android里面模拟按Home键的效果
  8. android使用属性动画执行抖动效果
  9. Internal error. Please refer to https:
  10. Android:管理应用内存