• Android Video Tutorials

Android相对布局



Android RelativeLayout允许您指定子视图相对于彼此的定位方式。每个视图的位置可以相对于兄弟元素或相对于父元素来指定。

Relative

相对布局

RelativeLayout属性

以下是RelativeLayout特有的重要属性:

序号 属性及描述
1

android:id

这是唯一标识布局的ID。

2

android:gravity

这指定了对象应如何在其内容上定位,在X轴和Y轴上。可能的值包括顶部、底部、左侧、右侧、居中、垂直居中、水平居中等。

3

android:ignoreGravity

这指示哪个视图不受重力影响。

使用RelativeLayout,您可以通过右边界对齐两个元素,或者使一个元素位于另一个元素的下方,居中在屏幕上,居中左侧等等。默认情况下,所有子视图都绘制在布局的左上角,因此您必须使用RelativeLayout.LayoutParams提供的各种布局属性和以下列出的一些重要属性来定义每个视图的位置:

序号 属性及描述
1

android:layout_above

将此视图的底部边缘置于给定锚视图ID的上方,并且必须是对另一个资源的引用,格式为“@[+][package:]type:name”。

2

android:layout_alignBottom

使此视图的底部边缘与给定锚视图ID的底部边缘匹配,并且必须是对另一个资源的引用,格式为“@[+][package:]type:name”。

3

android:layout_alignLeft

使此视图的左边缘与给定锚视图ID的左边缘匹配,并且必须是对另一个资源的引用,格式为“@[+][package:]type:name”。

4

android:layout_alignParentBottom

如果为true,则使此视图的底部边缘与父级的底部边缘匹配。必须是布尔值,“true”或“false”。

5

android:layout_alignParentEnd

如果为true,则使此视图的末端边缘与父级的末端边缘匹配。必须是布尔值,“true”或“false”。

6

android:layout_alignParentLeft

如果为true,则使此视图的左边缘与父级的左边缘匹配。必须是布尔值,“true”或“false”。

7

android:layout_alignParentRight

如果为true,则使此视图的右边缘与父级的右边缘匹配。必须是布尔值,“true”或“false”。

8

android:layout_alignParentStart

如果为true,则使此视图的起始边缘与父级的起始边缘匹配。必须是布尔值,“true”或“false”。

9

android:layout_alignParentTop

如果为true,则使此视图的顶部边缘与父级的顶部边缘匹配。必须是布尔值,“true”或“false”。

10

android:layout_alignRight

使此视图的右边缘与给定锚视图ID的右边缘匹配,并且必须是对另一个资源的引用,格式为“@[+][package:]type:name”。

11

android:layout_alignStart

使此视图的起始边缘与给定锚视图ID的起始边缘匹配,并且必须是对另一个资源的引用,格式为“@[+][package:]type:name”。

12

android:layout_alignTop

使此视图的顶部边缘与给定锚视图ID的顶部边缘匹配,并且必须是对另一个资源的引用,格式为“@[+][package:]type:name”。

13

android:layout_below

将此视图的顶部边缘置于给定锚视图ID的下方,并且必须是对另一个资源的引用,格式为“@[+][package:]type:name”。

14

android:layout_centerHorizontal

如果为true,则在此视图的父级内水平居中此子视图。必须是布尔值,“true”或“false”。

15

android:layout_centerInParent

如果为true,则在此视图的父级内水平和垂直居中此子视图。必须是布尔值,“true”或“false”。

16

android:layout_centerVertical

如果为true,则在此视图的父级内垂直居中此子视图。必须是布尔值,“true”或“false”。

17

android:layout_toEndOf

将此视图的起始边缘定位到给定锚视图ID的末尾,并且必须是对另一个资源的引用,格式为“@[+][package:]type:name”。

18

android:layout_toLeftOf

将此视图的右边缘定位到给定锚视图ID的左侧,并且必须是对另一个资源的引用,格式为“@[+][package:]type:name”。

19

android:layout_toRightOf

将此视图的左边缘定位到给定锚视图ID的右侧,并且必须是对另一个资源的引用,格式为“@[+][package:]type:name”。

20

android:layout_toStartOf

将此视图的末端边缘定位到给定锚视图ID的起始位置,并且必须是对另一个资源的引用,格式为“@[+][package:]type:name”。

示例

本例将引导您完成简单的步骤,展示如何使用相对布局创建您自己的Android应用程序。请按照以下步骤修改我们在“HelloWorld示例”章节中创建的Android应用程序:

步骤 描述
1 您将使用Android Studio IDE创建一个Android应用程序,并在com.example.demo包下将其命名为demo,如“HelloWorld示例”章节中所述。
2 修改res/layout/activity_main.xml文件的默认内容,以在相对布局中包含一些小部件。
3 res/values/strings.xml文件中定义所需的常量。
4 运行应用程序以启动Android模拟器并验证对应用程序所做更改的结果。

以下是修改后的主活动文件src/com.example.demo/MainActivity.java的内容。此文件可以包含每个基本生命周期方法。

package com.example.demo;

import android.os.Bundle;
import android.app.Activity;

public class MainActivity extends Activity {
   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
   }
   
}

以下是res/layout/activity_main.xml文件的内容:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:paddingLeft="16dp"
   android:paddingRight="16dp" >
   
   <EditText
      android:id="@+id/name"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:hint="@string/reminder" />
      
   <LinearLayout
      android:orientation="vertical"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      android:layout_alignParentStart="true"
      android:layout_below="@+id/name">
      
      <Button
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="New Button"
         android:id="@+id/button" />
      
      <Button
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="New Button"
         android:id="@+id/button2" />
      
   </LinearLayout>

</RelativeLayout>

以下是res/values/strings.xml文件的内容,用于定义两个新的常量:

<?xml version="1.0" encoding="utf-8"?>
<resources>
   <string name="action_settings">Settings</string>
   <string name="reminder">Enter your name</string>
</resources>

让我们尝试运行我们刚刚修改的Hello World!应用程序。我假设您在进行环境设置时已经创建了AVD。要从Android Studio运行应用程序,请打开项目的活动文件之一,然后单击工具栏中的运行Eclipse Run Icon图标。Android Studio将应用程序安装到您的AVD并启动它,如果您的设置和应用程序一切正常,它将显示以下模拟器窗口:

Android RelativeLayout
android_user_interface_layouts.htm
广告