zoukankan      html  css  js  c++  java
  • Android开发-ViewStub使用

    ViewStub是一个用于加载布局文件的控件,用于控制在视图中显示那一部分,功能类似于android:visibility属性,可以使用View.Gone来控制某一个视图控件的隐藏和显示。

    当然,ViewStub和android:visibility属性还是有一定的区别的,并且有一定的优势。ViewStub在软件启动的时候,软件只加载ViewStub部分的视图,而不加载ViewStub所关联的相应的视图,在有在调用inflate后才加载ViewStub所关联的视图,这样能够减小对手机内存的消耗,而使用View.Gone虽然可以实现对视图控件的隐藏和显示,但是需要在布局文件中提前设置好所有的控件,虽然可以把属性设置为View.Gone,但是在加载相应的视图的时候,依然需要将相应的视图控件全部加载,对内存的消耗太大,所以ViewStub可以起到一定的作用,要适当的使用两者的结合。

    但ViewStub有一定的缺陷,它只能加载一次视图控件,加载视图控件之后就不能使用ViewStub再对所关联的视图控件进行设置。

    示例代码:

    <ViewStub
            android:id="@+id/vs"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"

       android:layout_marginLeft="5dip"  

       android:layout_marginRight="5dip"  

       android:layout_marginTop="10dip"
            android:layout="@layout/popupwindow"/>

    其中android:layout属性就是其所关联的layout布局

    在代码中是findViewById(R.id.vs).inflate();

    就可以将所关联的布局显示出来替代ViewStub,同时在ViewStub设置的一些相应的属性也会传递给所关联的布局。

    android:layout_marginLeft="5dip"  

       android:layout_marginRight="5dip"  

       android:layout_marginTop="10dip"

    都会传递给@layout/popupwindow中的控件

  • 相关阅读:
    python之路_爬虫之selenium模块
    python之路_爬虫之requests模块补充
    扩展中国剩余定理讲解
    扩展中国剩余定理讲解
    bzoj3225 [Sdoi2008]立方体覆盖——扫描线
    差分约束讲解
    CF917C Pollywog —— 状压DP + 矩乘优化
    斜率优化讲解
    AC自动机讲解
    BZOJ2870—最长道路tree
  • 原文地址:https://www.cnblogs.com/YangMT/p/4748463.html
Copyright © 2011-2022 走看看