推荐安卓开发神器(里面有各种UI特效和android代码库实例)

为了使用ViewStub,你所有需要做的是指定android:id特性,便于以后inflate,指定android:layout特性,引用布局文件。ViewStub还允许你使用第三个特性,android:inflatedId,你可以使用它来重写包含的布局文件中的根元素的id。最后,在ViewStub上设定的layout_*参数将会应用到包含的布局文件的顶部。这里有个例子:

<ViewStub
android:id="@+id/stub_import"
android:inflatedId="@+id/panel_import"
android:layout="@layout/progress_overlay"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom" />
当你准备inflate ViewStub时,调用inflate()方法即可。你还可以设定ViewStub的Visibility为VISIBLE或INVISIBLE,也会触发inflate。注意的是,使用inflate()方法能返回布局文件的根View:

((ViewStub) findViewById(R.id.stub_import)).setVisibility(View.VISIBLE);
// or
View importPanel = ((ViewStub) findViewById(R.id.stub_import)).inflate();
有一点需要记住的是:当ViewStub inflate后,这个ViewStub就从View层次中移除了。因此,没有必要保留一个对ViewStub的引用(如在类的字段里)。

ViewStub是快捷编程与高效编程之间的产物。与其手动的inflate View并在运行时添加到View层次上,不如简单的使用ViewStub。它相当“廉价”且易于使用。ViewStub唯一的缺点是现在不支持<merge />标签。

更多相关文章

  1. 关于界面布局的一些小知识
  2. Android 自动编译、打包生成apk文件 3 - 使用SDK Ant方式
  3. Android 打包之三配置文件
  4. Android库so文件及skia函数的调用
  5. Android 第七课——UI布局
  6. Android UI布局之RelativeLayout
  7. android布局文件属性说明(转)
  8. 关于FragmentLayout布局的位置问题

随机推荐

  1. s5p4418-android5.1.1编译出错问题1
  2. android 防止反编译重签名,C实现代码
  3. KeyListener,NumberKeyListner
  4. Android图片缓存加强版(LruCache+DiskLruC
  5. Suggestion: add 'tools:replace="androi
  6. Fragment的交互及管理
  7. android 遥控器配置
  8. 《Expert Android》关键点摘录之一:Explor
  9. 【Android Training UI】创建自定义的Vie
  10. Android Media Server - MediaPlayer - s