page.title=Relative Layout parent.title=Hello, Views parent.link=index.html @jd:body
{@link android.widget.RelativeLayout} is a {@link android.view.ViewGroup} that displays child {@link android.view.View} elements in relative positions. The position of a {@link android.view.View} can be specified as relative to sibling elements (such as to the left-of or below a given element) or in positions relative to the {@link android.widget.RelativeLayout} area (such as aligned to the bottom, left of center).
A {@link android.widget.RelativeLayout} is a very powerful utility for designing a user interface because it can eliminate nested {@link android.view.ViewGroup}s. If you find yourself using several nested {@link android.widget.LinearLayout} groups, you may be able to replace them with a single {@link android.widget.RelativeLayout}.
res/layout/main.xml file and insert the following:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:id="@+id/label"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Type here:"/>
<EditText
android:id="@+id/entry"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@android:drawable/editbox_background"
android:layout_below="@id/label"/>
<Button
android:id="@+id/ok"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/entry"
android:layout_alignParentRight="true"
android:layout_marginLeft="10dip"
android:text="OK" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toLeftOf="@id/ok"
android:layout_alignTop="@id/ok"
android:text="Cancel" />
</RelativeLayout>
Notice each of the android:layout_* attributes, such as layout_below,
layout_alignParentRight, and layout_toLeftOf. When using a {@link
android.widget.RelativeLayout}, you can use these attributes to describe
how you want to position each {@link android.view.View}. Each one of these attributes define a
different kind
of relative position. Some attributes use the resource ID of a sibling {@link android.view.View}
to define its own relative position. For example, the last {@link android.widget.Button} is
defined to lie to the left-of and aligned-with-the-top-of the {@link android.view.View}
identified by the ID ok (which is the previous {@link android.widget.Button}).
All of the available layout attributes are defined in {@link android.widget.RelativeLayout.LayoutParams}.
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
The {@link android.app.Activity#setContentView(int)} method loads the
layout file for the {@link android.app.Activity}, specified by the resource
ID — R.layout.main refers to the res/layout/main.xml layout
file.
You should see the following layout: