首页 > 代码库 > 动态加载Layout 与 论Activity、 Window、View的关系
动态加载Layout 与 论Activity、 Window、View的关系
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、 Window、View的关系
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。