LocalActivityManager如何在一个Activity的一部分中显示其他Activity
首先要使用该方法,页面必须继承ActivityGroup。
总的来说,实现“如何在一个Activity的一部分中显示其他Activity”除了LocalActivityManager还需要一个或多个"容器"Layout(或者和Layout同级别的View)。
假设这个容器是一个LinearLayout,id是container,通常来说我们会想把这个容器的layout_weight设置成1,以便把位置先占好。
然后实例化LocalActivityManager:
LocalActivityManager mgr = getLocalActivityManager();
然后
mContainer = (LinearLayout) findViewById(R.id.container);
最后就可以把MyOtherActivity塞进container里面了。
mContainer.addView((mgr.startActivity("MyOtherActivityInstance1", new Intent(this, MyOtherActivity.class))).getDecorView());
addView是往Layout里动态增加View,别处也会用到。mgr.startActivity比一般的startActivity多一个String id参数:
"public Window startActivity (String id, Intent intent)"
其实这个String id只是一个标识,自己随便起个不重样的名字就好了,作用就是系统看到id一样的activity时会把两个activity当作一个处理,不会弄出平行的两个来,反之亦然。
至于最后这个getDecorView()方法,我一开始觉得很神奇,查了很多地方,最后觉得其实也不是很复杂,就是把Activity里面所有的View,包括其摆放方式,都给调出来,这样在addView的时候就不用担心摆放等问题了。
最新文章
- 解决在onCreate()过程中获取View的width和Height为0的4种方法
- 转:C/C++基本数据类型所占字节数
- 第二百五十二天 how can I 坚持
- 【转】关于C的未定义行为
- tee 解决readonly 文件无法修改
- UVa 699 落叶
- 如何解决KEIL 5 编KEIL4同RTX系统的project解
- 一 : springmvc常用注解
- Linux知识积累(6) 系统目录及其用途
- Spring Boot+maven打war包
- 深入浅出Java MVC(Model View Controller) ---- (JSP + servlet + javabean实例)
- C# -- 使用Ping检查网络是否正常
- CentOS随笔——关机命令
- 项目管理工具Maven的安装与使用
- MySQL 索引优化 Using where, Using filesort
- 基于KWIC 的keyword匹配算法(管道+过滤器模式下实现)
- Apache Tomcat8必备知识(完整的支持WebSockets 1.0)
- B-spline Curves 学习之B样条曲线定义(4)
- Notes 20180507 : Java程序设计之环境搭建与HelloWord
- 通过/proc/sys/net/ipv4/优化Linux下网络性能
热门文章
- 16/7/27-PHP环境配置(php5.5.3.7+mysql5.7.12+Apache2.4)
- Web控件LinkButton
- JNDI配置笔记
- spring cloud gateway获取response body
- Asp.Net Core 发布和部署 Linux + Nginx
- jvm学习(3)方法区、堆、对象存储位置
- P4553 80人环游世界(上下界费用流)
- rsync配置教程
- 根据配置RedisProperties自动获取RedisConnectionFactory
- Oracle:同步两张表的相同字段