Android setContentView() 详解

概述

在Acitivty中setContentView()用来设置布局文件,那么布局文件是怎样添加进窗口的呢?本文从源码入手进行解析。

源码解析

源码开始Acitivty中setContentView()
这里写图片描述
这个不用解释
进入setContentView方法

@Override
public void setContentView(@LayoutRes int layoutResID) {
    getDelegate().setContentView(layoutResID);
}

使用AppCompatActivity时的源码,点击查看Android AppCompat 库详解
来看getDelegate()方法

private AppCompatDelegate mDelegate;
/**
 * @return The {@link AppCompatDelegate} being used by this Activity.
 */
@NonNull
public AppCompatDelegate getDelegate() {
    if (mDelegate == null) {
        mDelegate = AppCompatDelegate.create(this, this);
    }
    return mDelegate;
}

如果mDelegate不存在就通过AppCompatDelegate.create(this, this);创建一个,而AppCompatDelegate 是什么呢?
Android setContentView() 详解_第1张图片
AppCompatDelegateAppCompatActivity的实现,并且兼容Activity

你可能感兴趣的:(Android)