当前位置:文档之家› Android应用布局技巧:创建可重用的UI组件

Android应用布局技巧:创建可重用的UI组件

Android应用布局技巧:创建可重用的UI组件

Android平台提供了广泛的UI可视组件---widget,把这些小的可视的构件组合到一起,就可以给用户提供复杂而有用的界面。但是,应用程序经常需要一些高级可视组件,要满足这样的需求,并要达到高效的目的,可以把一些标准的widget组合成一个新的可复用的组件。例如,包含一个进度条和一个取消按钮的操作进度表示组件;包含两个按钮的面板(取消和确认操作);带有一个图标、标题和说明的面板等等。通过编写定制的View类能够很容易的创建UI组件,但是使用XML会更加容易。

在Android XML布局文件中,每个标签都对应于一个实际的类实例(这个类始终是View类的子类),Android的UI工具集中还有三个特殊的标签,它们没有对应的View实例:。本文展示如何使用标签来创建纯粹的XML可视组件。有关如何使用的信息,请看“合并布局”的文章,它跟 组合起来使用,功能会更强大。

顾名思义,标签是要在当前布局中包含另一个XML布局。这个标签的使用就像下例显示的那样简单,例子中直接引用了Android的Home应用程序的源代码:

android:id="@+id/workspace"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

launcher:defaultScreen="1">

中只有layout属性是必须的。这个属性的值不带有android命名空间的前缀,它是希望要包含的布局文件的引用。在例子中,相同的布局被包含了三次。这个标签还能够覆盖一些被包含布局的属性。上例中的android:id指定了被包含布局的根View的id;如果定义了一个新的id,那么被包含布局的这个id也会被覆盖。类似的,可以覆盖所有的布局参数。就意味着任何android:layout_*属性都可以在标签中使用。以下示例中,相同的布局被包含了两次,但只有第一次覆盖了布局属性:

android:layout_height="fill_parent"

android:layout_width="fill_parent"/>

警告:如果要覆盖布局的尺寸,就必须同时覆盖android:layout_height和android:layout_width 属性---不能只覆盖高度或只覆盖宽度。如果只覆盖其中一个,不会有任何效果。没有覆盖的属性,依然会继承源布局中的属性设置。

在需要根据设备的配置来定制UI部分时,这个标记时特别有用的。例如,Activity的主布局可以被放到layout/目录中,然后包含保存在layout-land/和layout-port/目录中的另外布局,这样就可以在横屏和纵屏的布局中共享大多数的UI元素了。

相关主题
文本预览
相关文档 最新文档