通过讨论这个问题,我们能够见识到google是对面向对象模式的理解,能够理解android底层的一些调用。 这也是一道很常见的面试题。
我们这篇文章就来解决这四个问题:
Android 中view的显示视图么?
Activity,window,View的关系是什么?
LayOutInflater 填充是什么?
LayOutInflater 具体怎么做?
首先,我们从activity开始说起,说起activity我们都要知道setcontentview和attach方法。 setcontentview中的,主要用来填充相应的布局文件。而至于attach方法了,这个方法用的很少,但是很重要 。
我们跟踪java的源代码了,我们清晰的看到这个activity实际上是调用phonewindow的setcontentview中的 方法来进行界面的呈现。他的类图如下:
而phonewindow有初始化了一个ViewGroup对象,这个ViewGroup的子类,可以显示每个控件的视图,还有一 个LayoutInflator使xml文件能够填充为相应的视图。他们的类图又是如下:
时间: 2024-08-30 22:13:43