Activity的UI架构

来源:互联网 发布:矩阵求导链式法则 编辑:程序博客网 时间:2024/06/06 05:45

Window是android中的窗口,表示顶级窗口的意思,也就是主窗口;
它有两个实现类,PhoneWindow和MidWindow,我们一般的activity对应的主要是PhoneWindow。
在activity中经常使用的setContentView()

@Overridepublic void setContentView(View view,ViewGroup.LayoutParams params){        if (mContentParent == null) {            installDecor();//创建PhoneWindow        } else {            mContentParent.removeAllViews();        }        mContentParent.addView(view, params);        final Callback cb = getCallback();        if (cb != null) {           cb.onContentChanged();  //窗口类容发生变化时更新    }}

这里写图片描述
DecorView里面又有两个View,一个是用作title或者导航栏的FrameLayout另外一个是ID为content的FrameLayout用来装我们加写的Xml文件布局的View

LayoutInflater
LayoutInflater其实就是使用Android提供的pull解析方式来解析布局文件的。
获取 LayoutInflater 的方法
1、LayoutInflater.from(context);
2、context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
layoutInflater.inflate(resourceId, root); // attachToRoot默认为true
inflate(int resource, ViewGroup root, boolean attachToRoot)
resource要加载的布局id,root给该布局的外部再嵌套一层父布局


ActivityManagerService)配置好启动一个Activity的相关参数(包括Activity对象和Window对象信息)后,onCreate()方法,setContentView(根据界面配置信息)方法先创建一个DecorView给根contentView打气筒填入界面

原创粉丝点击