zoukankan      html  css  js  c++  java
  • 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的时候就不用担心摆放等问题了。

     

    转自:http://blog.sina.com.cn/s/blog_588508f801010g1r.html

  • 相关阅读:
    设计算法,求AB两个整数集合的交集
    C++函数传递指针面试题
    C++构造函数、析构函数与抛出异常
    c++ 虚函数表解析
    c++ 对象的内存布局
    09 构造函数能调用虚函数吗?
    C++构造函数初始化顺序
    计数排序,基数排序和桶排序
    80 求论坛在线人数
    79 两个整数集合A和B,求其交集
  • 原文地址:https://www.cnblogs.com/zsw-1993/p/4879422.html
Copyright © 2011-2022 走看看