资源布局
一个布局资源定义了一个活动的用户界面或用户界面的组件体系结构。
文件位置:
res/layout/
filename
.xml
文件名将用作资源ID。
编译的资源数据类型:
资源指针视图(或子类)的资源。
资源引用:
在Java:R.layout.filename
在XML:
:
@[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>
注:根元素可以是一个ViewGroup中,视图或
<merge>
元素,但只能有一个根元素,它必须包含的xmlns:android的属性与Android命名空间,如图所示。
ELEMENTS:
<ViewGroup中>
一个为其他View元素的容器。有许多不同种类的ViewGroup对象和每一个,可以指定以不同的方式子元素的布局。不同种类的ViewGroup对象包括的LinearLayout,RelativeLayout的,和的FrameLayout。
你不应该假定的ViewGroup的任何形式的接受嵌套视图。有些ViewGroups是适配器视图类,它只能从适配器决定了其子女的实现。
属性:
android:id
资源ID。为元素,你可以用它来获得您的应用程序的ViewGroup中引用一个独特的资源名称。查看更多关于Android的值:下面的ID。
android:layout_height
尺寸或关键字。需要。高度为组,作为一个尺寸值(或尺寸资源)或关键字(“FILL_PARENT”或“WRAP_CONTENT”)。请参阅下面的有效值。
android:layout_width
尺寸或关键字。需要。宽度为组,作为尺寸值(或维资源)或关键字(“FILL_PARENT”或“WRAP_CONTENT”)。请参阅下面的有效值。
更多的属性由一个ViewGroup基类的支持,更多的人是通过ViewGroup中的每个实现支持。对于所有可用的属性的一个参考,请参阅的ViewGroup类中的相应参考文档(例如,的LinearLayout XML属性)。
<View>
单个UI组件,通常被称为“小部件”。不同种类的视图对象包括TextView的,按钮和复选框。
属性:
android:id
资源ID。为元素,您可以用它来获得对查看您的应用程序的引用一个独特的资源名称。查看更多关于Android的值:下面的ID。
android:layout_height
尺寸或关键字。需要。的高度为元素,作为尺寸值(或维资源)或关键字(“FILL_PARENT”或“WRAP_CONTENT”)。请参阅下面的有效值。
android:layout_width
尺寸或关键字。需要。宽度为元素,作为尺寸值(或维资源)或关键字(“FILL_PARENT”或“WRAP_CONTENT”)。请参阅下面的有效值。
更多的属性由视图基类的支持,更多的人是通过查看每个实现支持。阅读布局以获取更多信息。对于所有可用的属性的一个参考,参阅相应的参考文献(例如,TextView的XML属性)。
<requestFocus>
代表查看对象的任何元素可以包含这个空元素,这给其母公司最初的重点在屏幕上。你只能有每个文件这些元素中的一个。
<include>
包括布局文件到这个布局。
属性:
layout
布局资源。需要。参照布局的资源。
android:id
资源ID。覆盖给予了包括布局的根视图的ID。
android:layout_height
尺寸或关键字。覆盖给予了包括布局的根视图的高度。只有有效的,如果机器人:layout_width也声明。
android:layout_width
尺寸或关键字。覆盖给予了包括布局的根视图的宽度。只有有效的,如果机器人:layout_height也声明。
您可以在任何其他布局属性<包括>由根元素中包含布局的支持,他们将覆盖在根元素定义。
注意:如果要覆盖使用<包括>标签,必须覆盖布局属性同时在Android:layout_height和android:layout_width为了让其他布局属性才能生效。
以包括一个布局的另一种方法是使用ViewStub。它是一个轻量级的观点,即不消耗布置空间,除非明确它充气,在这一点上,它包括由其Android定义的布局文件:布局属性。有关使用ViewStub的更多信息,请阅读加载浏览点播。
<merge>
未在布局层次结构绘制的替代的根元素。以此为根元素时,你知道该布局将被放置到已包含适当的父视图包含<合并>元素的子元素的布局是非常有用的。当你计划使用包括此布局的另一个布局文件<include>和这个布局并不需要不同的ViewGroup容器这是特别有用。有关合并布局的更多信息,请阅读重复使用布局与<包括/>。
Android的价值:ID
对于ID值,你通常应该使用这种语法格式:“@ + ID /名称”。加号,+,表示这是一个新的资源ID和AAPT工具将在R.java类中创建一个新的资源整数,如果它不存在。例如:
<TextView android:id="@+id/nameTextbox"/>
该nameTextbox名称现在是连接到该元素的资源ID。然后,您可以参考到的ID是用Java相关的TextView:
findViewById(R.id.nameTextbox);
此代码返回TextView的对象。
值id:但是,如果您已经定义了一个ID资源(和尚未使用),那么你可以通过排除在Android的加号申请的ID到View元素。
layout_height和android:为Android值layout_width:
高度和宽度值可以使用任何由Android支持的尺寸单位来表示(PX,DP,SP,PT,在,毫米)或以下关键字:
值说明
match_parent设置维度匹配的父元素。在API级别8弃用FILL_PARENT。
FILL_PARENT设置维度匹配的父元素。
WRAP_CONTENT设置尺寸仅适合该元件的内容所需的尺寸。
自定义视图元素
您可以创建自己的自定义视图和一个ViewGroup元素,并将它们应用到你的布局一样的标准布局元素。您还可以指定在XML元素支持的属性。要了解更多信息,请参阅自定义组件开发人员指南。
例:
在保存RES /布局/ main_activity.xml 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>
此应用程序代码将加载布局的活动,在onCreate()方法:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
}