遇到问题: whose view is not in the window hierarchy!
有时候先把自己所在的这个页面 dismiss 掉,再 present 另外一个页面时,控制台会提示 whose view is not in the window hierarchy 这个错误信息。...那么则应该把语句转移到 ViewDidAppear 方法中,毕竟你不能对一个只 Load 完毕,却还没有 Appear 出来的 ViewController 要求太多 :) 部分参考自StackOverFlow中的:whose...view is not in the window hierarchy
导语 本文主要介绍了Android中Window和View的关系,并在用户进程中说明了View的加载过程,最后再简单认识了一下WMS控制、显示Window的主要步骤。...再往上就是Framework和Application层,可以看到Android的任意View都通过Window间接的被WMS管理。...最开始说了,我们所以的View都是以Window的方式存在。这个的button对应的Window在哪儿呢?...好了,有了View的展示确实是把Window当载体的这个认知的话,我们继续以Activity的展示做更详细的解释。...4、总结 本文主要介绍了Android中Window和View的关系,并在用户进程中说明了View的加载过程,最后再简单认识了一下WMS控制、显示Window的主要步骤。
: Attempt to present on whose...view is not in the window hierarchy!...究其原因是A present B,而A还没有完成显示步骤(whose view is not in the window hierarchy),正常情况下我们需要在viewDidAppear之后才能成功
你可以指定Window的大小。Window包含一个View tree和窗口的layout参数。...感觉Window的理解比较抽象,我个人的理解是,Window相当于一个容器,里面“盛放”着很多View,这些View是以树状结构组织起来的。...我个人长期有个困惑:Window能做的事情,View对象基本都能做:像什么触摸事件啊、显示的坐标及大小啊、管理各个子View啊等等。View已经这么强大了,为什么还多此一举,加个Window对象。...让View接替Window的工作,把Window所做的事情都封装到View里面不好嘛?(至少免去了我们去理解抽象的Window,,,,O__O "…)。...或许又有人说,View负责绘制显示内容,Window负责管理View,各自的工作职责不同。可是我想说,Window所做的大部分工作,View里面都有同样(或类似)的处理。这依然无法说服我!
Views A view (an object whose class is UIView or a subclass of UIView) knows how to draw itself into...The Window The top of the view hierarchy is the app’s window....of your main window, which is the main window’s root view....Thus, the root view is the highest object in the view hierarchy that the user will usually see....A view that is completely transparent (or very close to it) is like a view whose hidden is YES: it is
PhoneWindow:Window唯一实现类。Window是一个抽象概念,是添加到WindowManager的根容器。...ViewRootImpl:ViewRootImpl是View的根,它控制了View的测量和绘制,同时持有WindowSession通过Binder与WMS通信,同时持有IWindow作为WSM的回调接口...小结:当Activity准备显示时,会测量Window和添加Window,创建出WMS服务对应的WindowState,Surface和native Surface。...应用无论是使用View/Canvas绘制(软件绘制,Skia),或者使用硬件加速绘制,最底层都是与Surface(OpenGL)进行交互。...触类旁通之SurfaceView SurfaceView会创建一个Z轴靠下的新Window,通过挖洞(重叠区域变透明)使自己可见。
直接更新布局控件的内容是不被允许的,当今天出现了一个状况,我在 Handle 中更新碎片的 TextView 内容竟然给我抱了哥错:Only the original thread that created a view...hierarchy can touch its views 根本原因 因为非UI线程做了UI操作,进而报出了 Only the original thread that created a view...hierarchy can touch its views。
本篇主要介绍Window相关面试要点,常见Window属性,Window、Activity、View之间的关系。更多其他完整面试专题,请关注公众号获取. 1、Window是什么?...表示一个窗口的概念,是所有View的直接管理者,任何视图都通过Window呈现(点击事件由Window->DecorView->View; Activity的setContentView底层通过Window...建立联系 Window并不是实际存在的,而是以View的形式存在 WindowManager的三个接口方法也是针对View的 实际使用中无法直接访问Window,必须通过WindowManager View...是视图的呈现方式,但是不能单独存在,必须依附在Window这个抽象的概念上 WMS把所有的用户消息发给View/ViewGroup,但是在View/ViewGroup处理消息的过程中,有一些操作是公共的...7.Activity、Window、DecorView、View之间的关系 每个Activity 包含了一个Window 对象,这个对象是由PhoneWindow做的实现。
序言 很多人都会用Activity、Window、View,但是你知道他们是怎样加载出来并呈现在你眼前的吗?你知道他们之间有着鲜为人知的关系吗? ?...在这个例子当中,画板就好比Activity,纸就好比Window,而笔就是View,我们所看到的就是这幅画,是通过笔一点一点画出来的,在哪里画呢?当然是纸上了,而最终承载这幅画的东西就是画板了。...,这个Window就是我们经常听到的PhoneWindow View的创建过程 我们大胆的猜测一下,View应该是被添加到Window中的,那么我们来看一下,到底是怎样添加的呢?...a.mFinished && willBeVisible) { 8 r.window = r.activity.getWindow(); 9 View decor =...r.window.getDecorView(); 10 decor.setVisibility(View.INVISIBLE); 11 ViewManager wm =
今天,本文将全面解析关于自定义View中基础:ViewRoot、DecorView & Window,希望你们会喜欢。 ---- 目录 ? ---- 1. ViewRoot 1.1 简介 ?...自动将DecorView添加到Window中 & 创建ViewRootImpll对象 root = new ViewRootImpl(view.getContent(),display); // 3....得到设置的View ViewGroup rootView = (ViewGroup) content.getChildAt(0); ---- 3. Window ? ---- 4....之间关系 ViewRoot、DecorView、Window和Activity的关系非常重要。 5.1 总结 ? 5.2 之间的关系 ? ---- 6....总结 本文全面解析关于自定义View中基础:ViewRoot、DecorView & Window
问题:在webview上点击选择照片/相机拍摄,就会出现whose view is not in the window hierarchy这个错误。...pushViewController(dblzView, animated: true) 这里边出错的原因是因为我设计的app一打开的initial View Controller是一个登陆页,所以登陆页跳转到...override func viewDidLoad() { self.view.addSubview(self.wk) } override func viewDidAppear() { //self.view.addSubview
它们无一例外都是使用的getWindow()进行加载 那么window是在什么时候创建的呢?...PolicyManager创建了一个新的Window对象 接下来 我们进入到PolicyManager类中 ? IPolicy是个接口 ?...直接创建了一个PhoneWindow对象, 那么意味着 每创建一个Activity都会创建一个PhoneWindow对象 那么PhoneWindow与Window到底是什么关系呢? ?...咱们平常开发时在xml中写的布局并不是根结点, 而是contentParent的子view 总结 它们之间的关系可以大致理解为: Activity: 相当于一栋房子 Window: 相当于房子里的一扇窗户...View: 相当于窗户上的一朵窗花 它们三个的创建顺序为: Activity--->Window--->View 具体时序图如下: ?
文章有点长,首先要理解Activity、View、Window,我提出了一些问题,这篇文章可以解答如下问题: 1、为什么要设计Activity、View、Window?...(理解Activity) 3、Window是什么?它的职能是什么? 4、View跟Window有什么联系? 5、Activity、View、Window三者如何关联?...为啥从Dialog入手,因为它里面包含了Window,而且可以直接操作Window里面的View,这样就能了解Window是如何控制View的,以及自定义Window怎么展示到Activity上(因为了解...WindowManager提供在Window上添加View、移除View、更新View的操作。...View需要通过Window来展示在Activity上。 5、Activity、View、Window三者如何关联?
今天,本文将全面解析关于自定义View中基础:ViewRoot、DecorView & Window,希望你们会喜欢。 目录 1....自动将DecorView添加到Window中 & 创建ViewRootImpll对象 root = new ViewRootImpl(view.getContent(),display); // 3....得到设置的View ViewGroup rootView = (ViewGroup) content.getChildAt(0); 3. Window 4. Activity 5....之间关系 ViewRoot、DecorView、Window和Activity的关系非常重要。 5.1 总结 5.2 之间的关系 6....总结 本文全面解析关于自定义View中基础:ViewRoot、DecorView & Window, 接下来我将继续对自定义View的应用进行讲解
01 理解Activity View window的关系 Activity像一个工匠(控制单元),Window像窗户(承载模型),View像窗花(显示视图)LayoutInflater像剪刀,Xml配置像窗花图纸...Activity构造的时候会初始化一个Window,准确的说是PhoneWindow。...这个PhoneWindow有一个“ViewRoot”,这个“ViewRoot”是一个View或者说ViewGroup,是最初始的根视图。...“ViewRoot”通过addView方法来一个个的添加View。...比如TextView,Button等 这些View的事件监听,是由WindowManagerService来接受消息,并且回调Activity函数。
我们来看一下View层级图 ?...又得到我们熟悉的HelloWorld界面,这个界面的层级图上一篇文章Android开发之漫漫长途 Ⅱ——Activity的显示之Window和View(1)已经上过了这里我们重新上传一下更详细的。...我们的setContentView(R.layout.activity_main);内部把activity_main.xml文件解析成View,并把该View添加到contentView。 ?...并且指定其父View为null(即没有父View) View view = getLayoutInflater().inflate(R.layout.activity_main,null...().addView(view,params);添加了View。
Class Table Inheritance Represents an inheritance hierarchy of classes with one table for each class....Concrete Class Inheritance Represents an inheritance hierarchy of classes with one table per concrete...clas in the hierarchy....Transform View A view that processes domain data element by element and transforms it into HTML....Value Object A small simple object, like money or a date range, whose equality is'n’t based on identity
我们知道Windows有Window(窗口)这个概念,其实在Android中也有这个概念,与Windows的窗口有着类似的含义。...Android中的所有视图,不管是Activity,Dialog,还是Toast都是附加在Window上展示的。介绍了Window,开始介绍如何操作Window(Window是个抽象类)。...WindowManager是操作Window的入口。...并且指定其父View为null(即没有父View) View view = getLayoutInflater().inflate(R.layout.activity_main,null...---- 不好意思时间不太够了,,具体的分析明天继续Android开发之漫漫长途 Ⅱ——Activity的显示之Window和View(2)
The entire view hierarchy is now leaking, and can’t be garbage collected....Let’s learn more about View.onAttachedToWindow(): When a view is added to a parent view with a window...When a view is added to a parent view with no window, onAttachedToWindow() will be called when that parent...We’re inflating the view hierarchy the typical Android way: At that point, every view in the view hierarchy...hierarchy was inflated, but never attached to the window and therefore never detached.
领取专属 10元无门槛券
手把手带您无忧上云