各位看官们,大家好,上一回中咱们说的是Android中View
助手的例子,这一回咱们继续说该例子。闲话休提,言归正转。让我们一起Talk Android吧!
看官们,我们在上一回中介绍了View的助手:DecorView
是如何创建的,这一回中介绍一下它是如何关联View及其控件的,要不然也对不起它这个View之根的称号。接下来我们通过代码结合文字的方式来演示这个过程。
看官们,installDecor
函数通过generateDecor
函数间接创建DecorView
对象后,使用把该对象和View关联在了一起。如何关联的呢?主要是通过generateLayout
函数实现的。
private void installDecor() {
mForceDecorInstall = false;
if (mDecor == null) {
mDecor = generateDecor(-1); //创建DecorView
//其它的代码省略
} else {
mDecor.setWindow(this);
}
if (mContentParent == null) {
mContentParent = generateLayout(mDecor); //把DecorView和Viwe关联起来
//其它的代码省略
}
而generateLayout
函数是如何把DecorView和Viwe关联起来的呢,我们可以看它的源代码(位于frameworks/base/core/java/com/android/internal/policy/PhoneWindow.java文件中,该函数的内容比较多,只列出我们需要介绍的内容):
protected ViewGroup generateLayout(DecorView decor) {
//其它的代码省略
mDecor.onResourcesLoaded(mLayoutInflater, layoutResource);
//其它的代码省略
}
这里的layoutResource
是依据各种条件选择的布局,默认的是
layoutResource =R.layout.screen_title;
这是我们使用AST默认条件创建工程后选择的布局。感兴趣的看官可以看看该布局的内容,内容较多,我们不再列出来,可以到文件:frameworks/base/core/res/res/layout/screen_title.xml
中查看。
该布局就是我们默认的布局,它分为两个FrameLayout
,并且呈线性垂直排列,上面的用来做title
,下面的用来做content
.
各位看官,关于Androd中View助手的例子咱们就介绍到这里,欲知后面还有什么例子,且听下回分解!