A layout resource defines the architecture for the UI in an Activity or a component of a UI.
res/layout/filename.xmlView (or subclass) resource.R.layout.filename@[package:]layout/filename
<?xml version="1.0" encoding="utf-8"?> <ViewGroup xmlns:android="http://schemas.android.com/apk/res/android" android:id="@[+][package:]id/resource_name" android:layout_height=["dimension" | "fill_parent" | "wrap_content"] android:layout_width=["dimension" | "fill_parent" | "wrap_content"] [ViewGroup-specific attributes] > <View android:id="@[+][package:]id/resource_name" android:layout_height=["dimension" | "fill_parent" | "wrap_content"] android:layout_width=["dimension" | "fill_parent" | "wrap_content"] [View-specific attributes] > <requestFocus/> </View> <ViewGroup > <View /> </ViewGroup> <include layout="@layout/layout_resource"/> </ViewGroup>
Note: The root element can be either a
ViewGroup, a View, or a <merge> element, but there must be only
one root element and it must contain the xmlns:android attribute with the android
namespace as shown.
android:idFor the ID value, you should usually use this syntax form: "@+id/name". The
plus symbol, +, indicates that this is a new resource ID and the aapt tool will
create a new resource integer in the R.java class, if it doesn't already exist. For
example:
<TextView android:id="@+id/nameTextbox"/>
The nameTextbox name is now a resource ID attached to this element. You can then
refer to the TextView to which the ID is associated in Java:
findViewById(R.id.nameTextbox);
This code returns the TextView object.
However, if you have already defined an ID resource (and it is not
already used), then you can apply that ID to a View element by excluding the
plus symbol in the android:id value.
android:layout_height and
android:layout_width:The height and width value can be expressed using any of the dimension units supported by Android (px, dp, sp, pt, in, mm) or with the following keywords:
| Value | Description |
|---|---|
match_parent |
Sets the dimension to match that of the parent element. Added in API Level 8 to
deprecate fill_parent. |
fill_parent |
Sets the dimension to match that of the parent element. |
wrap_content |
Sets the dimension only to the size required to fit the content of this element. |
You can create your own custom View and ViewGroup
elements and apply them to your layout the same as a standard layout
element. You can also specify the attributes supported in the XML element. To learn more,
see the Custom Components developer
guide.
res/layout/main_activity.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello, I am a TextView" />
<Button android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello, I am a Button" />
</LinearLayout>
This application code will load the layout for an Activity, in the
onCreate() method:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView.(R.layout.main_activity);
}