原文地址:http://developer.android.com/resources/articles/layout-tricks-reuse.html
——转载请注明出处,谢谢。

Android平台提供了非常丰富的UI widget和可视化结构块,可以混合利用它们来展现给用户复杂的、可用的界面。然而,Android应用通常需要简单、明了的可视化组件。想要高效地满足这个要求,可以把多重标准的widget混合成一个独立并可复用的组件。

举个例子,你可以创建一个可复用的组件,它包含进度条(progress bar) ;取消按钮(cancel button);包含两个按钮的面板;包含图标,标题和描述的面板;等等。可以很简单的自定义一个View来创建UI组件,但是,可以简单地仅仅使用 XML来完成这项任务。

在XML布局文件中,每一个标签都和一个实际的类实例(这个类通常是View的子类)组成了映射关系。UI工具提供了3个特别的标签,这些标签并不是和唯一地View实例相映射。它们是<requestFocus />, <merge /> 和 <include />.这片文章主要展示如何使用<include />去创建干净的XML可视化组件。当和<include />一起使用时,<merge />会更有效。如果想要更多地了解如何使用<merge />,可以查看Merging Layouts这篇文章。

<include />元素就像它的名字那样,它包含了另外一个XML布局。下面的例子明确地展示了如何使用这个标签,这个例子是从the Home application源码中提取出来的:

在<include />标签中,仅仅layout属性是必须的。这个属性并不包含Android的命名空间前缀,它是一个你想要包含的布局文件的引用。在这个例子中,想用的布局在同一行中被包含了3次。这个标签同时也允许你重写一些被包含布局的属性值。上面的例子展示了如何使用android:id去指定被包含布局的根视图,也可以重写如果已经定义了id的被包含布局。同样地,可以重写所有的布局参数。这意味着,任何android:layout_*属性都能被<include /> 使用。这里有一个例子,同样的视图被包含了两次,但只有第一次被包含的视图重写了布局属性。

注意:如果你想改写布局的尺寸,你必须同时重写android:layout_height 和android:layout_width,不能仅仅重写高度或宽度。如果只重写了一次,那么这将不会生效。

当你想根据设备的配置来指定部分UI的时候,这个标签会非常有用。例如,Activity的主布局文件可能被放置在layout/文件夹下,它可能包含另外的不同风格的布局,这些布局位于layout-land/ 和 layout-port/下面。这就允许在横屏和竖屏之间共享大部分的UI组件。




更多相关文章

  1. Android(安卓)三角标签(自定义Textview控件)
  2. android 工程源码下编译 Android.mk写法
  3. android 重写TextView 实现文字整齐排版
  4. Android(安卓)setTag和getTag()的使用
  5. android include 使用
  6. Android(安卓)webView 使用back功能返回以前浏览过的页面
  7. Android之检查网络是否可用(跳转网络设置页面)
  8. Tabwidget- TabWidget选择标签
  9. Android中重写onBackPressed()方法实现双击退出

随机推荐

  1. android hardware 简述(Android系统源码情
  2. Android(安卓)tree应用框架
  3. Android(安卓)Material Design 实践(四)-
  4. Android常用代码
  5. Android中自动跳转到系统设置界面
  6. android Bitmap和Drawable转换
  7. Android多媒体开发(4)————移植Libmad到
  8. Android(安卓)反射获得控件对象
  9. TabLayout 设置指示器宽度问题
  10. Android(安卓)build失败 原因总结: