动态载入Layout 与 论Activity WindowView的关系
Posted gcczhongduan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了动态载入Layout 与 论Activity WindowView的关系相关的知识,希望对你有一定的参考价值。
1)动态载入Layout的代码是
getWindow().setContentView(LayoutInflater.from(this).inflate(R.layout.main, null));
它等同于
setContentView(R.layout.main);
事实上
getWindow().setContentView(LayoutInflater.from(this).inflate(R.layout.main, null)) 是 setContentView(R.layout.main)
的底层实现
2)论Activity、 Window、View的关系
类似于MVC模式,Activity为控制器。Window为模型,View为真正的视图。
a。一个Activity 构造的时候一定会构造一个Window(PhoneWindow)。而且仅仅有一个
b,这个Window有一个ViewRoot(View / ViewGroup)
c,ViewRoot通过addView方法来加入View,如TextView,Button
d,这些View的事件监听,是由WindowManagerService来接收信息。而且回调Activity函数,
比方onClickListener。onKeyDown等。
以上是关于动态载入Layout 与 论Activity WindowView的关系的主要内容,如果未能解决你的问题,请参考以下文章
Android中apk动态载入技术研究android插件化及实现