以前只是单纯的写了个例子进行复习,今天又抽了点时间看了下,其实这个控件跟include作用都差不多,实现了view更模块化的管理,ViewStub 是一个隐藏的,不占用内存空间的视图对象,它可以在运行时延迟加载布局 资源文件.当 ViewStub 可见,或者调用 inflate()函数时,才会加载这个布局资源文件.
简单点说,就是需要用到某一个view时,在适时的inflate出来出来进行使用.
今天就不改代码部分了,贴一个附件供大家方便的学习和了解
public class ViewStubEx extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.a);
ViewStub mView = (ViewStub) findViewById(R.id.b_layout);
mView.inflate();
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="@string/hello" />
<ViewStub android:layout_width="fill_parent" android:layout="@layout/b"
android:layout_height="100dp" android:id="@+id/b_layout" />
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent">
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="hello Kitty" />
</LinearLayout>
详细的可以参考以下地址:
http://www.cnblogs.com/xirihanlin/archive/2010/04/28/1723291.html
分享到:
相关推荐
这个简单的示例旨在教你如何在项目中有效地利用ViewStub。 首先,了解ViewStub的基本属性: 1. `android:id`:为ViewStub设置唯一ID,方便后续代码中找到并操作。 2. `android:layout_width`和`android:layout_...
在"ViewStubDemo"这个压缩包文件中,很可能包含了演示ViewStub使用的一个简单示例项目,可能包括了XML布局文件和对应的Java代码,开发者可以通过查看和运行这个示例来更好地理解ViewStub的工作原理和用法。...
在“ViewStubDemo”这个项目中,我们可以创建一个简单的例子来演示`ViewStub`的用法。假设我们有一个主布局,其中包含一个`ViewStub`,并设置其加载一个包含按钮和文本框的子布局。当我们点击某个按钮时,`ViewStub`...
以下是一个简单的示例: ```java // 初始化时,可能显示加载中状态 ViewStub loadingStub = findViewById(R.id.loading_view_stub); loadingStub.setVisibility(View.VISIBLE); loadingStub.inflate(); // 网络...
以下是一个简单的例子,展示了如何在XML布局中使用ViewStub: ```xml ... <ViewStub android:id="@+id/viewstub" android:layout_width="wrap_content" android:layout_height="wrap_content" android:...
在“testViewStub”这个示例中,我们可以期待看到一个简单的例子,展示了如何在XML布局中声明ViewStub,并在Java或Kotlin代码中触发它的inflate过程。这通常会包含一个触发事件(如点击按钮),然后在事件处理函数中...
下面是一个简单的使用示例: ```java public void showEmptyView() { listView.setVisibility(View.GONE); if (noDataView == null) { ViewStub noDataViewStub = (ViewStub) findViewById(R.id.no_data_...
在`ViewStubTest`这个例子中,我们可能会看到一个简单的布局文件,其中包含一个`ViewStub`,并指定了一个待加载的布局资源。例如: ```xml android:layout_width="match_parent" android:layout_height="match_...
在开发应用程序的时候,经常会遇到这样的情况,会在运行时动态根据条件来决定显示哪个View或某个布局。那么最通常的想法就是把可能... 推荐的做法是使用android.view.ViewStub,ViewStub是一个轻量级的View,它一个看
在开发应用程序的时候,经常会遇到这样的情况,会在运行时动态根据条件来决定显示哪个View或某个布局。那么最通常的想法就是把...推荐的做法是使用android.view.ViewStub,ViewStub是一个轻量级的View,它一个看不见的
第一个demo可能使用了`LayoutInflater`类来实现动态加载布局。`LayoutInflater`可以从XML布局文件中创建视图对象,然后将其添加到父视图中。例如: ```java LayoutInflater inflater = (LayoutInflater) context....
在布局优化中,Androi的官方提到了这三种布局、、<ViewStub>,并介绍了这三种布局各有的优势,下面也是简单说一下他们的优势,以及怎么使用,记下来权当做笔记。 1、布局重用 标签能够重用布局文件,简单的使用...
在`HowTo-ViewStub-master`这个项目中,你应该能看到一个简单的例子,演示了如何创建和使用ViewStub。项目可能包含一个主布局文件,其中包含一个ViewStub,以及一个被延迟加载的子布局文件。通过运行这个项目,你...
在开发应用程序的时候,经常会遇到这样的情况,会在运行时动态根据条件来决定显示哪个View或某个布局。那么最通常的想法就是把...推荐的做法是使用android.view.ViewStub,ViewStub是一个轻量级的View,它一个看不见的
接下来,我们创建一个简单的布局文件,例如activity_main.xml,然后启用DataBinding: ```xml xmlns:app="http://schemas.android.com/apk/res-auto"> <!-- 定义一个变量 --> name="user" type=...
例如,当用户点击某个按钮时,可以使用`ObjectAnimator`让一个`ViewStub`以淡入效果加载,并配合视图动画实现内容的平滑展示。 总结来说,通过熟练掌握`ViewStub`的使用,我们可以优化应用性能并实现资源的高效加载...
在布局文件中,我们可以使用ViewStub来动态加载这些状态的视图。ViewStub是一个轻量级的View,初始时不占用任何空间,只有当被设置为可见时才会加载其布局并占据空间。以下是如何使用ViewStub的例子: ```xml ...
本文将根据提供的文件信息中的几个关键知识点进行详细解析,包括:如何检测网络连接状态、实现全屏与无标题界面、使用ViewStub进行延迟加载以及如何移除窗口背景。 #### 一、检测网络连接状态 在Android应用开发中...