Android 界面组成

Android 界面组成_第1张图片
Paste_Image.png

当在activity中调用setContentView()的时候将通过Window接口调用PhoneWindow中的setContentView

Android 界面组成_第2张图片
Paste_Image.png

在setContentView中创建了DecorView来管理Activity的Layout,在DecorView中将Activity的layout 加载到了ID为com.android.internal.R.id.content的FrameLayout
在方法generateLayout中,创建了contentParent


Android 界面组成_第3张图片
Paste_Image.png

在installDecor方法中


if (mContentParent == null) {
mContentParent = generateLayout(mDecor);
...
}
在setContentView中,将activity的layout放到了mContentParent
 mLayoutInflater.inflate(layoutResID, mContentParent);

Tips:
DecorView 是个 FrameLayout

private final class DecorView extends FrameLayout implements RootViewSurfaceTaker {...}

contentParent 是个FrameLayout
 
 

android:layout_width="match_parent"

android:layout_height="0dip"

android:layout_weight="1"

android:foregroundGravity="fill_horizontal|top"

android:foreground="?android:attr/windowContentOverlay" />

你可能感兴趣的:(Android 界面组成)