Layout Resource

SEE ALSO

  1. Layouts

A layout resource defines the architecture for the UI in an Activity or a component of a UI.

FILE LOCATION:
  res/layout/filename.xml
  The filename will be used as the resource ID.
COMPILED RESOURCE DATATYPE:
  Resource pointer to a View (or subclass) resource.
RESOURCE REFERENCE:
  In Java: R.layout.filename
  In XML: @[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, 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.

ELEMENTS:
<ViewGroup>
desc

A container for other View elements. There are many different kinds of ViewGroup objects and each one lets you specify the

layout of the child elements in different ways. Different kinds of ViewGroup objects include LinearLayoutRelativeLayout,

and  FrameLayout. You should not assume that any derivation of ViewGroup will accept nested Views. Some ViewGroups are

implementations of the  AdapterView class, which determines its children only from an Adapter.

android:id

Resource ID. A unique resource name for the element, which you can use to obtain a reference to the ViewGroup from your

application. See more about the value for android:id below.

android:layout_height

Dimension or keyword. Required. The height for the group, as a dimension value (or dimension resource) or a keyword

("fill_parent" or "wrap_content"). See the valid values below.

android:layout_width

Dimension or keyword. Required. The width for the group, as a dimension value (or dimension resource) or a keyword

("fill_parent"  or "wrap_content"). See the valid values below.

other

More attributes are supported by the ViewGroup base class, and many more are supported by each implementation of ViewGroup.

For a reference of all available attributes, see the corresponding reference documentation for the ViewGroup class (for example,

the LinearLayout XML attributes).

<View>
desc An individual UI component, generally referred to as a "widget". Different kinds of View objects include TextViewButton, and CheckBox.
android:id

Resource ID. A unique resource name for the element, which you can use to obtain a reference to the View from your application.

See more about the value for android:id below.

android:layout_height

Dimension or keyword. Required. The height for the element, as a dimension value (or dimension resource) or a keyword

("fill_parent" or "wrap_content"). See the valid values below.

android:layout_width

Dimension or keyword. Required. The width for the element, as a dimension value (or dimension resource) or a keyword

("fill_parent" or "wrap_content"). See the valid values below.

other

More attributes are supported by the View base class, and many more are supported by each implementation of View.

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 View object can include this empty element, which gives its parent initial focus on the screen.

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 android:layout_width

is also declared.

android:layout_width

Dimension or keyword. Overrides the width given to the root view in the included layout. Only effective if android:layout_height is

also declared.

 

You can include any other layout attributes in the <include> that are supported by the root element in the included layout and they

will override those defined in the root element.

Caution: If you want to override layout attributes using the <include> tag, you must override bothandroid:layout_height and

android:layout_width in order for other layout attributes to take effect. Another way to include a layout is to use ViewStub.

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

itsandroid:layout attribute. For more information about using ViewStub, read Loading Views On Demand.

<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 <merge> element. This is particularly useful when you plan to include this

layout in another layout file using <include> and this layout doesn't require a different ViewGroup container. For more information about merging layouts, read

Re-using Layouts with <include/>.

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 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 TextViewto 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.

Value for 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.

Custom View elements

  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.

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 the onCreate() method:

 public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
}

Layout Resource官方教程(1)简介的更多相关文章

  1. Layout Resource官方教程(3)在layout中用include嵌入其它layout

    简介 <include>Includes a layout file into this layout. 类似 #include ,把layout展开在include处 attribute ...

  2. Layout Resource官方教程(4)<include>与<merge>

    Re-using Layouts with <include/> THIS LESSON TEACHES YOU TO Create a Re-usable Layout Use the ...

  3. Layout Resource官方教程(2)用ViewStub引用的嵌入的layout可推迟加载

    Loading Views On Demand THIS LESSON TEACHES YOU TO Define a ViewStub Load the ViewStub Layout YOU SH ...

  4. ContentProvider官方教程(2)简介、Content URIs

    In this document Overview Accessing a provider Content URIs Content Provider Basics A content provid ...

  5. Intent官方教程(1)简介和作用

    Intents An Intent is a messaging object you can use to request an action from another app component. ...

  6. ActionBar官方教程(1)简介及各区域介绍

    Action Bar The action bar is a window feature that identifies the user location, and provides user a ...

  7. SwiftUI 官方教程

    SwiftUI 官方教程 完整中文教程及代码请查看 https://github.com/WillieWangWei/SwiftUI-Tutorials   SwiftUI 官方教程 SwiftUI ...

  8. Node.js 教程 01 - 简介、安装及配置

    系列目录: Node.js 教程 01 - 简介.安装及配置 Node.js 教程 02 - 经典的Hello World Node.js 教程 03 - 创建HTTP服务器 Node.js 教程 0 ...

  9. Unity性能优化(3)-官方教程Optimizing garbage collection in Unity games翻译

    本文是Unity官方教程,性能优化系列的第三篇<Optimizing garbage collection in Unity games>的翻译. 相关文章: Unity性能优化(1)-官 ...

随机推荐

  1. 【html】【16】高级篇--毛玻璃效果[模糊]

    参考: http://www.zhangxinxu.com/wordpress/2013/11/%E5%B0%8Ftip-%E4%BD%BF%E7%94%A8css%E5%B0%86%E5%9B%BE ...

  2. java中内部类的定义与访问规则

    java内部类总结 简单来说,内部类就是在我们所熟悉的类中的里面再定义一个类 为什么需要内部类? 当我们描述事物时,事物之中还有事物,我们就用内部类描述事物 因为内部事物在使用外部事物的内容 我举一个 ...

  3. java_集合框架

    一.集合框架图 二.Collection接口     Collection中可以存储的元素间无序,可以重复的元素.     Collection接口的子接口List和Set,Map不是Collecti ...

  4. JSP九大内置对象(转载)

    JSP中一共预先定义了9个这样的对象,分别为:request.response.session.application.out.pagecontext.config.page.exception 1. ...

  5. NSDate与 NSString 、long long类型的相互转化

    我的技术博客经常被流氓网站恶意爬取转载.请移步原文:http://www.cnblogs.com/hamhog/p/3560280.html,享受整齐的排版.有效的链接.正确的代码缩进.更好的阅读体验 ...

  6. 使用AutoMapper

    一.AutoMapper初探: [参考Using AutoMapper: Getting Started] 1.新建空的ASP.NET MVC项目. 2.在Models文件夹添加类: public c ...

  7. CAS原理

    JDK5之前Java是靠synchronized关键字保证同步,这种机制存在以下问题: 在多线程竞争下,加锁.释放锁会导致比较多的上下文切换和调度延时,引起性能问题 一个线程持有锁会导致其他需要此锁的 ...

  8. Linux中的安装神器--yum源安装

    linux配置yum源 一.修改yum的配置文件     /etc/yum.repos.d/xxx.repo          1.进入yum配置文件目录        # cd /etc/yum.r ...

  9. centos 安装php ide (eclipse + php 插件)

    1.检查更新并安装eclipse  yum check-update  yum install eclipse*此时的 eclipse 已经安装好了,默认是在/usr/lib/下的,可以通过cd /u ...

  10. 51nod贪心算法入门-----活动安排问题

    有若干个活动,第i个开始时间和结束时间是[Si,fi),只有一个教室,活动之间不能交叠,求最多安排多少个活动? 输入 第1行:1个数N,线段的数量(2 <= N <= 10000) 第2 ...