<ViewStub
android:inflatedId="@+id/vs"
android:layout="@layout/sub_info"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
|
ViewStub stub = (ViewStub)findViewById(R.id.vs);
View view = stub.inflate();
stub.setOnInflateListener(new OnInflateListener() {
@Override
public void onInflate(ViewStub stub, View inflated) {
}
});
|
XML属性
|
相关方法
|
描述
|
android:inflatedId
|
setInflatedId(int)
|
覆盖待加载的视图id
|
android:layout
|
setLayoutResource(int)
|
要引用的布局资源 |
public void draw (Canvas canvas) 手动在指定的画布绘制这个视图(及所有其子视图)。这个视图必须在调用这个函数之前做好了整体布局。当要自己实现一个视图时,不要重载这个方法;相反,你应该重载onDraw(Canvas)方法。(译者注:主要用于自定义的视图组件的方法。) 参数 canvas 这个画布传到那个已渲染的视图对象。 |
public int getInflatedId () 返回加载的布局资源文件的ID,如果加载的布局资源文件的id是NO_ID,那么这个加载的View将保留它原来的id值。 相关XML 属性 android:inflatedId 返回值 一个正整数来标识这个要加载的视图或者NO_ID将保持加载视图原来的id。 参见 setInflatedId(int) |
public int getLayoutResource () 返回加载的布局资源文件的id值。 相关XML 属性 android:layout 返回值 加载到视图对象的布局资源文件id值。 参见 setLayoutResource(int) setVisibility(int) inflate() |
public View inflate () 加载getLayoutResource()方法标识的布局资源,并通过加载布局资源替换父容器中它自己。 返回值 这个已加载的布局资源文件. |
public void setInflatedId (int inflatedId) 设置加载视图的ID。如果这个id为NO_ID,这个加载视图保持它原来的id不变。 相关XML 属性 android:inflatedId 参数 inflatedId 一个正整数来标识这个加载视图或者NO_ID将保持加载视图原来的id。 参见 getInflatedId() |
public void setLayoutResource (int layoutResource) 设置待加载的布局资源文件,当ViewStub被设置为visible或invisible或调用inflate()时使用。这个在加载布局资源文件时创建的视图用来在父容器中替换它自己。 相关XML 属性 android:layout 参数 layoutResource 一个有效的布局资源文件id值(不等于0)。 参见 getLayoutResource() setVisibility(int) inflate() |
public void setOnInflateListener(ViewStub.OnInflateListener inflateListener) 设置成功加载布局资源文件后事件通知的监听器。 参数 inflateListener 该OnInflateListener在成功加载后得到事件通知。 参见 ViewStub.OnInflateListener |
public void setVisibility (int visibility) 当可见性设置为VISIBLE或INVISIBLE,inflate()将被调用,并且加载视图资源在父容器中替换ViewStub。 参数 visibility 设置为VISIBLE(显示), INVISIBLE(隐藏), 或 GONE(完全隐藏,不暂用布局位置). 参见 inflate() |
protected void dispatchDraw (Canvas canvas) 调用这个函数去绘制这个控件的子视图。可以通过派生类重写在绘制子类之前获取控制(但是是在他自己的视图已经被绘制完之后) 参数 canvas 这个画布传到那个已渲染的视图对象。 |
protected void onMeasure (int widthMeasureSpec, int heightMeasureSpec) 测量这个视图以确定其内容的高度和宽度。通过measure(int, int)来调用这个方法,并且应该由子类重写以提高内容测量的效率和精确度。 约定:当该方法被重写时,你必须调用setMeasuredDimension(int, int)来存储已测量视图的高度和宽度。否则将通过measure(int, int)抛出一个IllegalStateException异常。 调用父类的onMeasure(int, int)方法是一个有效的办法。 父类的实现是以背景大小为默认大小,除非MeasureSpec(测量细则)允许更大的背景。为了更好测量内容子类应该重写onMeasure(int, int)。 如果这个方法被重写,子类有责任确保测量它的高度和宽度至少是视图的最小宽度和高度(getSuggestedMinimumHeight()和getSuggestedMinimumWidth())。
参数 widthMeasureSpec 由于父类有横向空间要求,参见View.MeasureSpec。 heightMeasureSpec 由于父类有纵向空间要求,参见 View.MeasureSpec 。 |