kotlin 使用viewStub

kotlin 使用viewStubViewStub是一个轻量级的的View,继承于ViewGroup,没有任何尺寸,不绘制任何东西,因此绘制或者移除时更省时。(ViewStub不可见,大小为0)优点实现View的延迟加载,避免资源的浪费,减少渲染时间,在需要的时候才加载View缺点ViewStub所要替代的layout文件中不能有标签 ViewStub在加载完后会被移除,或者说是被加载进来的layout替换掉了…

大家好,又见面了,我是你们的朋友全栈君。

ViewStub是一个轻量级的的View,继承于ViewGroup,没有任何尺寸,不绘制任何东西,因此绘制或者移除时更省时。(ViewStub不可见,大小为0)

优点

实现View的延迟加载,避免资源的浪费,减少渲染时间,在需要的时候才加载View

缺点

  • ViewStub所要替代的layout文件中不能有标签
  • ViewStub在加载完后会被移除,或者说是被加载进来的layout替换掉了

用法

<ViewStub
    android:id="@+id/stub_id"
    android:layout="@layout/view_stub_layout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

view_stub_layout.xml 文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/index_page_bg"
    android:orientation="vertical">

    <TextView
        android:id="@+id/tv_advert_hot_expert"
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:layout_marginTop="5dp"
        android:layout_marginBottom="5dp"
        android:background="@color/white"
        android:gravity="center"
        android:text="预留广告位置" />

</LinearLayout>

用ViewStub加载layout文件时,可以调用 setVisibility(View.VISIBLE)或者inflate()

  • stub_id.inflate() 或者
  • stub_id.visibility = View.VISIBLE

注意

  • 一旦ViewStub visible/inflated,则ViewStub将从视图框架中移除,其id stub_import也会失效
  • ViewStub被绘制完成的layout文件取代,并且该layout文件的root view的id是android:inflatedId指定的id panel_import,root view的布局和ViewStub视图的布局保持一致

所以,当inflate()之后,需要这样写:

tv_advert_hot_expert!!.text = "我是viewstub里的view"

stub_id已经失效,如果再使用这个id,会报nullpointException;

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/153986.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • std::vector find_vectornator工具使用

    std::vector find_vectornator工具使用vector本身是没有find这一方法,其find是依靠algorithm来实现的。#include<iostream>#include<algorithm>#include<vector>intmain(){usingnamespacestd;vector<int>vec;vec.push_back(1);vec.push_back(2);vec.push_back(3);v

    2022年8月31日
    3
  • git常用命令大全「建议收藏」

    git常用命令大全「建议收藏」1.强制推送(慎用,除非你认为其他冲突等可以丢弃或者不是很重要)gitpush–force2.创建文件等小命令toucha//创建一个a文件echo1234>>a//把1234这个内容放入a文件cata//打开a文件读取出a文件中的内容mkdirtest//创建test文件夹rm文件名//删除文件pwd//打印…

    2022年5月30日
    43
  • 软件工程 毕业设计题目汇总表_新颖的软件工程毕业设计题目

    软件工程 毕业设计题目汇总表_新颖的软件工程毕业设计题目软件工程毕业设计题目汇总【不断更新中】1.微信小程序校园表白墙微信小程序2.房屋租赁管理系统3.航空售票管理系统4.高校会议室管理系统5.高校就业管理系统6.失物招领系统7.图书销售系统8.微信小程序商城系统9.微信小程序资料分享系统10.微信小程序校园点歌系统11.校园资料分享系统12.电影网站系统13.人事管理系统14.视频教学网站15.网…………

    2022年10月21日
    2
  • Python if用法_if语句的用法例子

    Python if用法_if语句的用法例子if语句的语法及其实例等…..

    2022年9月26日
    2
  • 画中画广告..例

    画中画广告..例<!–画中画广告开始–><tableborder=0cellspacing=0cellpadding=0align=left><tr><td&gt

    2022年7月1日
    22
  • 二十三又是谁的二十三

    二十三又是谁的二十三23岁那年你正处在哪个状态?现在呢?我,23岁,应届毕业生。生活,工作,爱情都处于人生的低谷,一穷二白,一无所有,一事无成。分享一下成长的建议吧。匿名用户23岁那年…就是去年…在22岁的时候我毕业,同时第二年准备考研,结果因为压力太大,期望太高,又失利了,但是我依然满怀信心和憧憬在我23岁那年四月,当我深爱的女孩(在这之前我追了她四年)说她要去北京时,我在毫无准备的情况下,带了2000块钱冲到北京,那会的北京还有点冷…但是我只是想打好前站,在她来的时候能提供一点帮助,在前两周里,每天面试两家公

    2022年7月25日
    10

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号