• Android:ViewStub


    ViewStub

      在开发应用程序时,经常会遇到这样的情况:需要运行时动态地根据条件决定显示哪个View或某个布局。

      解决方法1:把可能用到的View都写在上面,通过动态地设置View.GONE来进行控制。

      解决方法2:使用android.view.ViewStub实现。

      方法1逻辑简单而且控制起来比较灵活。但是它的缺点是耗费资源,即便初始时View的可见性为GONE,但是

    在inflate布局的时候View仍然会被inflate,即:仍然创建对象,仍然会初始化属性等,会消耗内存等资源。

      推荐的做法是使用android.view.ViewStub。ViewStub是一个轻量级的View。它是一个看不见的,不占布

    局位置,占用资源非常小的控件。可以为ViewStub指定一个布局,在inflate布局的时候,只有ViewStub会被初

    始化,然后当ViewStub被设置为可见或者调用ViewStub.inflate()的时候,ViewStub所指向的布局就会被、、

    inflate和实例化,然后ViewStub的布局属性都会被转移到它所指向的布局。这样,就可以使用ViewStub来方便

    的在运行时决定要不要显示某个布局。

    相关限制:

      ViewStub只能Inflate一次,之后ViewStub对象会被置空。换句话说,就是某个ViewStub被指定的布局

    inflate之后,就不会在通过ViewStub来控制它了。

  • 相关阅读:
    hashlib模块
    configparser模块
    xml模块和shelve模块
    json与pickle模块
    3/30
    os模块
    sys模块
    shutil模块
    random模块
    2月书单《编码隐匿在计算机软硬件背后的语言》 13-16章
  • 原文地址:https://www.cnblogs.com/slowalker/p/3384527.html
Copyright © 2020-2023  润新知