ViewStub must have a valid layoutResource

本来xml里面是include 一个xml, 后面改成ViewSub的形式。

include是:

</>

ViewSub是:

<>

==

两者在引入布局上的区别是:include是: layout="@layout/xx", viewsub是: android:layout="@layout/xx",多了android:

时间: 2024-10-01 05:01:10

ViewStub must have a valid layoutResource的相关文章

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

一.提出疑问 ViewStub比較简单.之前文章都提及到<Android 性能优化 三 布局优化ViewStub标签的使用>.可是在使用过程中有一个疑惑,究竟是ViewStub上设置的參数有效还是在其包含的layout中设置參数有效?假设不明确描写叙述的问题,能够看下下面布局伪代码. res/layout/main.xml <LinearLayout > <ViewStub android:id="@+id/viewstub" android:layout

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

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

android之ViewStub解析

android中,很多地方在提到布局优化都会提到使用ViewStub.可能很多人都只是用她,而没有去看看ViewStub到底是个什么东西,器特殊的功能是如何实现的!这里,我来解析一下我们的ViewStub. 打开ViewStub.java,你会发现其实ViewStub就是一个view的子类,和其他framework的java文件一样,google都给了一个说明.其实通过这个说明,你基本就知道ViewStub的属性和使用方法来.这里我就通过她的说明开始入手. 下面我们来看第一段原文说明: * A

ViewStub源码分析

ViewStub是一种特殊的View,Android官方给出的解释是:一种不可见的(GONE).size是0的占位view,多用于运行时 延迟加载的,也就是说真正需要某个view的时候.在实际项目中,我发现它试用的场景大体有2种: 1. 某种只第一次需要显示的view,比如某个介绍性的东西,比如用户触发了某些操作,给他弹出一个使用介绍, 这种介绍只出现一次,之后的操作中不会再出现,所以这种情况下可以先用ViewStub来占个位,等介绍的view真正 需要的时候才inflate,一般情况下这种vi

Android布局性能优化—从源码角度看ViewStub延迟加载技术

在项目中,难免会遇到这种需求,在程序运行时需要动态根据条件来决定显示哪个View或某个布局,最通常的想法就是把需要动态显示的View都先写在布局中,然后把它们的可见性设为View.GONE,最后在代码中通过控制View.VISIABLE动态的更改它的可见性.这样的做法的优点是逻辑简单而且控制起来比较灵活.但是它的缺点就是,耗费资源,虽然把View的初始可见View.GONE但是在Inflate布局的时候View仍然会被Inflate,也就是说仍然会创建对象,会被实例化,会被设置属性.也就是说,会

ViewStub的使用及原理

最近项目中有需求,需要添加功能引导,如果用户是第一次使用,那么就显示功能引导,之后则不再显示.感觉这样的需求正好可以利用ViewStub来实现,更节省资源. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent&q

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

版权声明:本文为Mr.Simple原创文章,未经允许不得转载. 目录(?)[+] 在开发中UI布局是我们都会遇到的问题,随着UI越来越多,布局的重复性.复杂度也会随之增长.Android官方给了几个优化的方法,但是网络上的资料基本上都是对官方资料的翻译,这些资料都特别的简单,经常会出现问题而不知其所以然.这篇文章就是对这些问题的更详细的说明,也欢迎大家多留言交流. 一.include 首先用得最多的应该是include,按照官方的意思,include就是为了解决重复定义相同布局的问题.例如你有五

ViewStub使用详解——从源码看ViewStub的使用

ViewStub就是一个轻量级的View,它在布局文件中以<ViewStub>标签的形式存在,在acitivity加载布局的时候并不会实例化这个View,而是当在代码中调用ViewStub的inflate()方法的时候才会实例化这个View. 定义一个ViewStub ViewStub是一个轻量级的View,它没有大小,也不会执行任何的绘制.所以inflate它和把它放在view树中是非常划算的.每一个ViewStub都需要制定android:layout属性来制定它要inflate的布局文件

布局优化之ViewStub源码分析

源码分析 1 @RemoteView 2 public final class ViewStub extends View { 3 private int mInflatedId; 4 private int mLayoutResource; 5 6 private WeakReference<View> mInflatedViewRef; 7 8 private LayoutInflater mInflater; 9 private OnInflateListener mInflateLis