动态加载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等。

时间: 2024-07-31 16:16:13

动态加载Layout 与 论Activity、 Window、View的关系的相关文章

Android UI编程(8)——动态加载Fragment

通过动态加载fragment实现在一个Activity拥有3种不同的布局,直接看效果图吧: 常规模式下: 点击家居控制: 代码: AndroidManifest.xml--没有做任何修改,创建工程默认 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package

如何按需动态加载js文件

JavaScript无非就是script标签引入页面,但当项目越来越大的时候,单页面引入N个js显然不行,合并为单个文件减少了请求数,但请求的文件体积却很大.这时候最好的做法就是按需引入,动态引入组件js和样式,文件load完成后调用callback,运行js.代码还是很简便的.塔河县臧清机械 1. 判断文件load完成.加载状态ie为onreadystatechange,其他为onload.onerror 01 if(isie){ 02     Res.onreadystatechange =

005 动态加载实例

from selenium import webdriver from selenium.webdriver.chrome.options import Options from time import sleep # 创建一个对象,用来控制chorme以无界面模式打开 chrome_options = Options() chrome_options.add_argument('--headless') chrome_options.add_argument('--disable-gpu')

实现Android 动态加载APK(Fragment or Activity实现)

尊重原创:http://blog.csdn.net/yuanzeyao/article/details/38565345 最近由于项目太大了,导致编译通不过(Android对一个应用中的方法个数貌似有限制),所以一直琢磨着能否将某些模块的APK不用安装,动态加载,通过在网上查找资料和网友的帮助,终于实现了APK的动态加载,网络上介绍APK动态加载的文章非常多,但是我觉得写得非常好的就是这位大牛的,我基本上就是使用他的这种方案,然后加入了自己的元素.这位大牛是通过Activity实现的,我稍作修改

Android中插件开发篇之----动态加载Activity(免安装运行程序)

一.前言 又到周末了,时间过的很快,今天我们来看一下Android中插件开发篇的最后一篇文章的内容:动态加载Activity(免安装运行程序),在上一篇文章中说道了,如何动态加载资源(应用换肤原理解析),没看过的同学,可以转战: http://blog.csdn.NET/jiangwei0910410003/article/details/47679843 当然,今天说道的内容还这这篇文章有关系.关于动态加载Activity的内容,网上也是有很多文章介绍了.但是他们可能大部分都是介绍通过代理的方

Android动态加载Activity原理

activity的启动流程 加载一个Activity肯定不会像加载一般的类那样,因为activity作为系统的组件有自己的生命周期,有系统的很多回调控制,所以自定义一个DexClassLoader类加载器来加载插件中的Activity肯定是不可以的. 首先不得不了解一下activity的启动流程,当然只是简单的看一下,太详细的话很难研究清楚. 通过startActivity启动后,最终通过AMS进行跨进程回调到ApplicationThread的scheduleLaunchActivity,这时

Android apk动态加载机制的研究(二):资源加载和activity生命周期管理

出处:http://blog.csdn.net/singwhatiwanna/article/details/23387079 (来自singwhatiwanna的csdn博客) 前言 为了更好地阅读本文,你需要先阅读Android apk动态加载机制的研究这篇文章,在此文中,博主分析了Android中apk的动态加载机制,并在文章的最后指出需要解决的两个复杂问题:资源的访问和activity生命周期的管理,而本文将会分析这两个复杂问题的解决方法.需要说明的一点是,我们不可能调起任何一个未安装的

android左右滑动加载分页以及动态加载数据

android UI 往右滑动,滑动到最后一页就自动加载数据并显示 如图: Java代码 package cn.anycall.ju; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import android.app.Activity; import android.content.ActivityNotFoundException; impo

ViewFlipper动态加载View

知识点 1.ViewFlipper基本用法及动态添加View: 2.ViewFlipper结合手势翻页+特效: 3.WindowManager的基本用法. 任意张图片实现循环滑动,其实PageFlipper当前最多的子View个数(ChildViewCount)小于等于2. <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.