记ViewStub的一个问题

微带天线理论学习笔记(1) 微带天线的概念是由Deschamps于1953年提出来的,它是在一块厚度远小于工作波长的介质基片的一面敷以金属辐射片、一面全部敷以金属薄层作接地板而成。辐射片可以根据不同的要求设计成各种形状。微带天线具有质量轻、体积小和易于制造等优点,广泛应用于个人无线通信中。 阅读详情

记ViewStub的一个问题

莫名其妙线上报错,一个空指针。如下:

 if (rlMain == null) {
                    View inflate = vsDialog.inflate();
                    imgClose = inflate.findViewById(R.id.img_close);
                    rlMain = inflate.findViewById(R.id.rl_main);
            
                }
                rlMain.setVisibility(View.VISIBLE);

报错rlMain.setVisibility(View.VISIBLE); 其中rlMain为空对象。

这件很奇怪了,前面我已经初始化了,而且已经寻找id了。为啥还能为报空了。

但是机型只在5.1 5.0.2 报错,其他都是正常的。
再看vsDialog创建地方:

//动态添加,避免反射
  vsDialog = new ViewStub(ctx);
        RelativeLayout.LayoutParams layoutParam2 = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, (int) (TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 40, res.getDisplayMetrics())));
        vsDialog.setId(R.id.vs_main);
      vsDialog.setLayoutResource(R.layout.viewstub_home_dailog);
      //        vsDialog.setInflatedId(R.id.rl_main);

        vsDialog.setLayoutParams(layoutParam2);
        relativeLayout0.addView(vsDialog);

上面多了vsDialog.setInflatedId(R.id.rl_main);这一行就不报错了。

所以setInflatedId这个方法必须要设置,必须设置懒加载文件的id。
看了下源码,没啥区别。可能存在id被覆盖的问题。
先记一下,一定要设置setInflatedId

【WRF-Chem】预处理工具(Preprocessors)总结 预处理工具(Preprocessors)总结 阅读详情

相关推荐

HDMI2.1 FRL流控 概览

HDMI 2.1 FRL的流控本质是。

叫好与叫座虽然不是对立面,但想在同一个作品中达到双重效果很难。 2083

ViewStub的一些使用空指针问题

ViewStub的一些使用空指针问题

GDY的博客 3100

5分钟搞懂异构图注意力网络(HAN):从元路径到节点聚合的全流程解析

本文深入解析异构图注意力网络(HAN)的核心原理与实战应用,从元路径设计到多级注意力实现的全流程。HAN通过节点级和语义级双重注意力机制,有效处理包含多种节点和边类型的异构图数据,在电商推荐、学术网络分析等场景展现卓越性能。文章提供DGL实现代码和调参技巧,帮助开发者快速掌握这一强大工具。

weixin_29056701的博客 311

Android布局优化之ViewStub、include、merge使用与源码分析

在开发中UI布局是我们都会遇到的问题,随着UI越来越多,布局的重复性、复杂度也会随之增长。 首先用得最多的应该是include,按照官方的意思,include就是为了解决重复定义相同布局的

Mr.Simple的专栏 4万+

Julia Ann老司机管理系统

https://content.badgirlsusa.com/Julia_Ann-Sexy_Julia_Ann_Fucks_A_Lil_Elf's_Big_Cock_/Julia-Ann-Naughty-America-%E6%80%A7%E6%84%9F%E7%9A%84%E8%A3%98%E8%8E%89%E5%A9%AD%E5%AE%89%E4%BA%82%E6%90%9E-lil-%E7%B2%BE%E9%9D%88%E7%9A%84%E5%A4%A7%E5%85%AC%E9%9B%9E-2020

www_oracle_com的博客 22万+

PDPS16.0单机版与SPLMLicenseServer授权避坑指南:从安装到冲突解决

本文详细解析了PDPS16.0单机版的安装与授权流程,重点阐述了如何正确配置SPLMLicenseServer本地许可证服务器以实现软件激活。针对安装过程中常见的许可证冲突问题,提供了清晰的排查思路和解决方案,并介绍了通过设置环境变量等替代授权方法,帮助用户高效避坑,确保Tecnomatix Process Simulate顺利运行。

weixin_29231221的博客 563

访问 views onCreate()方法报NullPointerException

我跟着教程 ,通过向导创建了一个新的activity ,当我运行时在 onCreate方法里面调用findViewById()方法时报错 NullPointerException 。 Layout XML (fragment_main.xml): http://schemas.android.com/apk/res/android" xmlns:tools="http://schem

love android 1032

2006NOIP普及组真题 4. 数列

从上述推理中,我们发现要输出的幂次和中的第 N 项(也就是幂次和中的序号N),对应的二进制位数和幂次和对应的二进制位数相同。当 k=3 时,k的幂次为1, 3, 9, 27, 81…,即第0位,第2位均为1,转成 k 进制(k=3)时。,即第2位,第3位均为1,转成 k 进制(k=3)时。转成 k 进制(k=3)时的幂次和为。,即第0位,第1位,第2位均为1,(即第0位,第1位,第2位均为1)N=12时,12的二进制是。(即第0位,第2位均为1)(即第2位,第3位均为1)结论:这道题就变成了。

weixin_40252159的博客 1514

ViewStub你肯定听过,但是这些细节了解吗?

1什么是ViewStub 1. ViewStub 是一个看不见的,没有大小,不占布局位置的 View,可以用来懒加载布局。 2. 当 ViewStub 变得可见或 inflate() 的时候,布局就会被加载(替换 ViewStub)。因此,ViewStub 一直存在于视图层次结构中直到调用了 setVisibility(int) 或 inflate()。 3. 在 ViewStub 加载...

Android 开发架构 559

【DexGraspNet与多指手抓取算法详解】第三章 DexGraspNet数据集构建机理

抓取姿态描述多指手与物体的相对空间关系,包含手掌位姿与手指关节配置。

VectorShift的博客 498

基于Scrapy+Playwright的学术会议信息智能爬取系统实战

本文详细介绍如何使用Python构建一个高效的学术会议信息爬取系统,结合Scrapy框架和Playwright无头浏览器技术,实现对全球学术会议数据的自动化采集、清洗和存储。文章包含完整的技术方案设计、代码实现细节以及性能优化策略,可帮助读者快速掌握现代网络爬虫开发的核心技术。关键词:Python爬虫、Scrapy、Playwright、学术会议、数据采集、反爬对抗python复制下载。

2201_76125261的博客 710

android 开发常见错误汇总系列

1,android调用h5 js  带参方法 : 一般在sdk版本小于19时android调用js用  getWebView().loadUrl("Javascript:ScanMachineCode("+resutl+")"); 当sdk 大于19以后调用 getWebView().evaluateJavascript("Javascript:ScanMachineCode('" + r

Kdsdk的专栏 387

Labview界面多按钮控件的一种处理方法

当界面中存在多个按钮控件时候,此时如果逐个为每个控件添加事件条件则会显得较为麻烦,此处提供了一种对多控件进行批量处理的方法

miracleis的博客 2702

ViewStub原理,解决约束布局( constraintLayout)ViewStub约束失效问题,解决ViewStub约束失效约束不起作用的问题

ViewStub原理,解决约束布局( constraintLayout)ViewStub约束失效问题,解决ViewStub约束失效约束不起作用的问题

blankmargin的博客 1899

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

使用ViewStub需要注意的一些问题

关于ViewStub的使用方法网络上有很多,但是某些细节不注意的话,运行时就会出现不可预知的错误。 1.引用布局文件的属性为android:layout,而不是layout(与incluce的区别) 2.除了android:id属性,还有一个与id有关的属性inflateId 一个ViewStub的例子: <ViewStub android:id="@+id/pic

shaziln的学习笔记 9538

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Android viewstub

对 Android viewStub进行简单的总结描述

YK 2355

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

ViewStub使用

一、ViewStub是什么? <ViewStub>标签实质上是一个宽高都为 0 的不可见 的轻量级View。通过延迟按需加载布局的方式提升页面加载速度。 二、ViewStub使用场景 某布局默认是不可见,当满足特定场景才显示。比如网络异常提示、引导页等。 三、ViewStub怎么使用? 1、创建布局文件layout_test.xml(注:根标签可以是布局或控件,但不能为<merge>,子标签可以使用<merge>) <TextView ...

yufumatou的博客 3156

ViewStub用法

在开发应用程序的时候,经常会遇到这样的情况,会在运行时动态根据条件来决定显示哪个View或某个布局。那么最通常的想法就是把可能用到的View都写在上面,先把它们的可见性都设为View.GONE,然后在代码中动态的更改它的可见性。这样的做法的优点是逻辑简单而且控制起来比较灵活。但是它的缺点就是,耗费资源。虽然把View的初始可见View.GONE但是在Inflate布局的时候View仍然会被Infl

因为了解所以无知 2万+

ViewStub

由于最近正在封装下拉刷新上拉加载的库,为了进一步的优化ui,所以学习了下ViewStub,这里转载别人的blog分享给大家.   在Android开发中,经常会遇到这样的情况,在程序运行过程中动态的根据当前条件来决定是否显示某个控件或布局,那么最通常的想法就是把可能用到的View都写在上面,先把它们的可见性都设为View.GONE,然后在代码中动态的更改它的可见性。这样的做法的优点是逻辑简单而且控制

朱利源的博客 1559

从源码角度分析ViewStub 疑问与原理

一、提出疑问     ViewStub比较简单,之前文章都提及到《Android 性能优化 三 布局优化ViewStub标签的使用》,但是在使用过程中有一个疑惑,到底是ViewStub上设置的参数有效还是在其包括的layout中设置参数有效?如果不明白描述的问题,可以看下以下布局伪代码。 res/layout/main.xml <ViewStub androi

Android 4523

Android中ViewStub组件使用

ViewStub组件使用介绍。

为梦想而努力(马英才) 2万+

Android ViewStub

①对ViewStub的inflate操作只能进行一次,因为inflate的时候是将其指向的布局文件解析inflate并替换掉当前ViewStub本身(由此体现出了ViewStub“占位符”性质),一旦替换后,此时原来的布局文件中就没有ViewStub控件了,因此,如果多次对ViewStub进行infalte,会出现错误信息:ViewStub must have a non-null ViewGroup viewParent。//stub布局的加载有两种方式,一种是stub.inflate();

zenmela2011的专栏 2472

ViewStub 简介

在实际开发中,ViewStub 在提升用户体验和优化性能方面都是有一定作用的! ViewStub就是一个宽高都为0的一个View,它默认是不可见的,只有通过调用setVisibility函数或者Inflate函数才会将其要装载的目标布局给加载出来。也就是页面默认是不加载ViewStub所指向的View的,而ViewStub本身是一个轻量级的View,占用资源非常小的控件。 这就为我们一开始加载页面的时候省出来了资源,从而提升性能! 还有在一些页面我们需要延时加载的内容,我们也可以使用ViewStub,比如我

qinchun_long的博客 586

ViewStub的一些不常见的用法

ViewStub可以用来实现局部页面跳转的功能,让一些View先隐藏,点击后可显示,view显示后有一些点击操作,我想获得他的ontouch事件进行点击,但直接设置view.setOnClickListener,没反应,经过几番周折发现它有个setOnInflateListene

安迪·潘 的专栏 5142

Android中ViewStub和View有什么区别?

答:merge 需要作为根布局,而 ViewStub 必须指定单一父容器进行替换(完整含有Linerout等布局的xml文件)。答:View.GONE 的视图仍会创建对象并参与 measure/layout,而 ViewStub 完全跳过这些步骤。示例:电商APP商品详情页中,规格选择弹窗用 ViewStub 加载,而立即显示的图片画廊用普通 View。:请解释 ViewStub 和普通 View 的区别及其使用场景。内存占用:ViewStub 自身仅 4KB,远小于普通 View。ViewStub 在。

qq_45906596的博客 1189
上一篇: okhttp实现连接池原理
下一篇: android LeakCanary原理解析
HUandroid
博客等级 码龄10年 35粉丝 113原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值