13-6-27 android布局include的用法

1.引言      

        可复用组件是优秀的面向对象设计的标识,Android支持抽象视图,从而提供了一个类似层级的模块化。通过把UI分离成独立的组件,可以在整个应用中使用它们。这样会让应用具有统一的外观并且是的改变设计更加容易。

2.标签

     在android中提供了一个布局文件包含另一个布局文件的简单方法:标签。通过这个标签,另一个布局被包含在试图层级中。就好比几个小朋友都在画画,我把小明画的天粘在我这张纸上,小红画的草地粘在我这张纸的底下,小白画的场景粘在中间,那么我就有了一副漂亮的画。当然我需要考虑的就是怎么样衔接最漂亮,不会有牵强,所以我要注意的:(1)我先给定要粘画的区域大小 (2)不要做色彩的衔接,免得不流畅。

下面是一个的例子

     android:id="@+id/sub_id"

     android:layout_width="match_parent"

     android:layout_height="match_parent"

    

这里我们android:layout_* 就是我们在设置要粘贴的画布区域,随心所遇的设置。其余的属性都是被忽略的。

3.标签

在经常使用标签时,布局可能会变得嵌套过多而导致UI绘图变慢。标签可以解决这个问题。标签指导系统移除子布局的顶层容器。当你包含一个子布局时,里面包含的视图会被合并到主布局中去,但没有额外的容器试图。

3.ViewStub

      尽管标签是你能够很容易的把UI分离成可复用的组件,你可能会发现被包含的布局很少会被用到。类似于进度和错误蓝的布局时可用的,但是在正常使用的过程中并不会出现,当被包含今布局之后,这些UI元素仍然是被扩张的,他们会占用CPU周期和内存,尽管是不被显示的。那怎么办?还好Android提供了一个解决问题才抽象。

      ViewStub类是一个不会占用布局空间的不可见的视图。ViewStub引用一个将被添加到UI的外部布局,与不同的是,被引用的布局不会被扩张,知道你发送特定请求他才会扩张。

     有了ViewStub之后,布局的可选部分只会在你需要它们的时候可用,否则他们就会不可见,这样加快了UI的绘制速度。

   android:id="@+id/view_stub"

   android:layout_width="match_parent"

   android:layout_height="match_parent"

   android:inflatedId="@+id/sub"

   android:layout="@layout/sub"/>

Android视图有3个可能的可见状态,每个都对布局有不同的影响。

**View.VISIBLE:视图对用户可见,并且会占据布局的空间。

**VIew.INVISIBLE:视图对用户不可见,但是会占用布局的空间。

**View.GONE:视图对用户不可见也不会占用布局空间。

要想扩张用ViewStub引用外部布局,可以自己扩张它或者改变它的可见性:

((ViewStub)findViewById(R.id.view_stub)).setVisibility(View.VISIABLE);

 

摘自:Android UI基础教程 [美]Jason Ostrander

你可能感兴趣的:(android日常笔记)