API 25 (Android 7.1.1 API) view.ViewStub
来源:互联网 发布:淘宝apass会员 编辑:程序博客网 时间:2024/06/05 18:25
Android API 25 (Android 7.1.1)
ViewStub
public final class ViewStub
extends View
Added in API level 1
java.lang.Object
↳android.view.View
↳android.view.ViewStub
【概述】
ViewStub是一个隐藏的,不占用内存空间的视图对象,它可以在运行时延迟加载布局资源文件。当ViewStub可见,或者调用inflate()函数时,才会加载这个布局资源文件。 该ViewStub在加载视图时在父容器中替换它本身。因此,ViewStub会一直存在于视图中,直到调用setVisibility(int)或者inflate()为止。ViewStub的布局参数会随着加载的视图数一同被添加到ViewStub父容器。同样,你也可以通过使用inflatedId属性来定义或重命名要加载的视图对象的Id值。例如:
<ViewStub android:id="@+id/stub"
android:inflatedId="@+id/subTree"
android:layout="@layout/mySubTree"
android:layout_width="120dip"
android:layout_height="40dip" />
通过"stud"id可以找到被定义的ViewStub对象。加载布局资源文件"mySubTree "后, ViewStub对象从其父容器中移除。可以通过id"subTree"找到由布局资源"mySubTree"创建的View。这个视图对象最后被指定为宽120dip,高40dip。执行加载布局资源文件的推荐方式如下:
ViewStub stub = (ViewStub) findViewById(R.id.stub);
View inflated = stub.inflate();
当inflate()被调用,这个ViewStub被加载的视图替代并且返回这个视图对象。这使得应用程序不需要额外执行findViewById()来获取加载视图的引用。
注:这个类大概意思是用ViewStub类和在XML文件里面指定的布局资源文件关联起来,让布局资源文件在需要使用的时候再加载上去。主要作用是性能优化,什么时候用什么时候加载,不用在开始启动的时候一次加载,既可以加快程序的启动速度,又可以节省内存资源。
【嵌套类】
接口 ViewStub.OnInflateListener
监听器用于在ViewStub成功扩充其布局资源后接收通知。
【XML属性】
android: inflatedId
API 1
关联方法:setInflatedId(int inflatedId)
属性说明:覆盖待加载视图的id值。
必须引用另一个资源(格式:@[package:]type:name)或主题属性(格式:?[package][type:]name)。
对应的全局属性资源符号是inflatedId。
如果膨胀的ID是NO_ID,则膨胀的视图保持其原始ID。
android: layout
API 1
关联方法:setLayoutResource(int layoutResource)
属性说明:要引用的布局资源文件id。
必须引用另一个资源(格式:@[package:]type:name)或主题属性(格式:?[package][type:]name)。
对应的全局属性资源符号是layout。
指定当此StubbedView变为可见或不可见或调用inflate()时要展开的布局资源。 通过膨胀布局资源创建的视图用于替换其父级中的此StubbedView。
【继承自view.View的XML属性】
跳转view.View
【公共构造函数】
ViewStub(Context context)
ViewStub(Context context, int layoutResource)
使用指定的布局资源创建一个新的ViewStub。
ViewStub(Context context, AttributeSet attrs)
ViewStub(Context context, AttributeSet attrs, int defStyleAttr)
ViewStub(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes)
【公共方法】
draw
void draw (Canvas canvas)
API 1
手动渲染此视图(及其所有子项)给定的画布。在调用此函数之前,视图必须已经完成了完整的布局。当实现一个视图时,实现onDraw(android.graphics.Canvas)而不是覆盖这个方法。 如果你确实需要重写这个方法,调用超类的版本。
getInflatedId
int getInflatedId ()
API 1
返回由膨胀视图获取的ID。 如果膨胀的ID是NO_ID,则膨胀的视图保持其原始ID。
getLayoutInflater
LayoutInflater getLayoutInflater ()
API 16
获取当前使用在inflate()中的LayoutInflater。
getLayoutResource
int getLayoutResource ()
API 1
返回将由setVisibility(int)或inflate()使用的布局资源,以将其父视图中的此StubbedView替换为另一个视图。
inflate
View inflate ()
API 1
扩充由getLayoutResource()标识的布局资源,并通过膨胀的布局资源在其父级中替换此StubbedView。
setInflatedId
void setInflatedId (int inflatedId)
API 1
设置充气视图采用的ID。 如果膨胀的ID是NO_ID,则膨胀的视图保持其原始ID。
setLayoutInflater
void setLayoutInflater (LayoutInflater inflater)
API 16
将LayoutInflater设置为在inflate()中使用,或者使用null来使用默认值。
setLayoutResource
void setLayoutResource (int layoutResource)
API 1
指定当此StubbedView变为可见或不可见或调用inflate()时要展开的布局资源。 通过膨胀布局资源创建的视图用于替换其父级中的此StubbedView。
setOnInflateListener
void setOnInflateListener (ViewStub.OnInflateListener inflateListener)
API 1
指定在此ViewStub成功扩充其布局资源后要通知的inflate侦听器。
setVisibility
void setVisibility (int visibility)
API 1
当可见性设置为VISIBLE或INVISIBLE时,将调用inflate(),并且该StubbedView在其父级中由膨胀的布局资源替换。 之后,对此函数的调用将传递到膨胀视图。
- API 25 (Android 7.1.1 API) view.ViewStub
- Android中文API-ViewStub
- API 25 (Android 7.1.1 API) view.SurfaceView
- API 25 (Android 7.1.1 API) view.TextureView
- API 25 (Android 7.1.1 API) view.ViewGroup——属性分析
- API 25 (Android 7.1.1 API) Manifest
- ViewStub的API
- android.view.WindowManager API
- Android View api 详解
- Android View api
- android.view.ViewStub
- <转>Android API 中文(14) —— ViewStub
- Android API之android.view.View.MeasureSpec
- 【Android API简述】android.view.View.OnClickListener
- Android API的View类
- Android API Guides---Grid View
- Android API Guides---View Animation
- API 25 (Android 7.1.1 API) widget.Space
- J2SE第六章——常用类(Math类、File类)
- 【5】Struts2的数据的封装
- 干货分享|深度学习零基础进阶第四弹!
- 经典蓝牙和BLE 的区别
- Adaboost 算法的原理与推导
- API 25 (Android 7.1.1 API) view.ViewStub
- 8.makefile初步编程学习
- 同步锁:生产者-消费者问题
- Windows增加删除右键新建项
- 数据类型知识点(一)
- Linux scp 命令远程复制
- 专业版win10删除管理员用户解决方法
- Xshell 使用小技巧
- SwipeRefreshLayout下拉刷新+线程池多线程下载+RecyclerView