Layout Resource
SEE ALSO
A layout resource defines the architecture for the UI in an Activity or a component of a UI.
- FILE LOCATION:
-
res/layout/filename.xml
-
- COMPILED RESOURCE DATATYPE:
- Resource pointer to a
View
(or subclass) resource. - RESOURCE REFERENCE:
- In Java:
R.layout.filename
-
@[package:]layout/filename
语法示例
- SYNTAX:
<?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
, aView
, or a<merge>
element, but there must be only one root element and it must contain thexmlns:android
attribute with theandroid
namespace as shown. - ELEMENTS:
<ViewGroup> | |
desc |
A container for other layout of the child elements in different ways. Different kinds of and implementations of the |
android:id |
Resource ID. A unique resource name for the element, which you can use to obtain a reference to the application. See more about the value for |
android:layout_height |
Dimension or keyword. Required. The height for the group, as a dimension value (or dimension resource) or a keyword ( |
android:layout_width |
Dimension or keyword. Required. The width for the group, as a dimension value (or dimension resource) or a keyword ( |
other |
More attributes are supported by the For a reference of all available attributes, see the corresponding reference documentation for the |
<View> | |
desc | An individual UI component, generally referred to as a "widget". Different kinds of View objects include TextView , Button , and CheckBox . |
android:id |
Resource ID. A unique resource name for the element, which you can use to obtain a reference to the See more about the value for |
android:layout_height |
Dimension or keyword. Required. The height for the element, as a dimension value (or dimension resource) or a keyword ( |
android:layout_width |
Dimension or keyword. Required. The width for the element, as a dimension value (or dimension resource) or a keyword ( |
other |
More attributes are supported by the Read Layouts for more information. For a reference of all available attributes, see the corresponding reference documentation (for example, the TextView XML attributes). |
<requestFocus> | |
Any element representing a You can have only one of these elements per file. |
|
<include> | |
desc | Includes a layout file into this layout. |
layout | Layout resource. Required. Reference to a layout resource. |
android:id | Resource ID. Overrides the ID given to the root view in the included layout. |
android:layout_height |
Dimension or keyword. Overrides the height given to the root view in the included layout. Only effective if is also declared. |
android:layout_width |
Dimension or keyword. Overrides the width given to the root view in the included layout. Only effective if also declared. |
You can include any other layout attributes in the will override those defined in the root element. Caution: If you want to override layout attributes using the
It is a lightweight View that consumes no layout space until you explicitly inflate it, at which point, it includes a layout file defined by its |
|
<merge> | |
An alternative root element that is not drawn in the layout hierarchy. Using this as the root element is useful when you know that this layout will be placed into a layout that already contains the appropriate parent View to contain the children of the layout in another layout file using |
-
Value for
android:id
For the ID value, you should usually use this syntax form:
"@+id/name"
. The plus symbol,+
, indicates that this is a new resource ID and theaapt
tool will create a new resource integer in theR.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 theTextView
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 theandroid:id
value.Value for
android:layout_height
andandroid: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. Custom View elements
You can create your own custom
View
andViewGroup
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. - EXAMPLE:
- XML file saved at
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 theonCreate()
method: -
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
}