一起Talk Android吧(第一百一十六回:Android中View的助手三)

本文深入探讨了Android中DecorView的创建与View关联的过程,详细解释了installDecor和generateLayout函数的作用,以及它们如何实现DecorView与View的绑定。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

各位看官们,大家好,上一回中咱们说的是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助手的例子咱们就介绍到这里,欲知后面还有什么例子,且听下回分解!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

talk_8

真诚赞赏,手有余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值