代码之家  ›  专栏  ›  技术社区  ›  mtmurdock

Android:使用ActivityGroup嵌入活动

  •  15
  • mtmurdock  · 技术社区  · 14 年前

    我正处于构建应用程序的概念化/设计阶段,遇到了一些困难。本质上,我在寻找一种将一个活动嵌入另一个活动的UI的方法,类似于tabhost/tabactivity。屏幕顶部将有一个窗口,其中包含其他活动,下面是独立于上述活动的按钮和控件,并且应始终可见。用户可以在窗口中从一个活动导航到另一个活动,而不会对下面的控件进行任何更改。

    在研究这个问题的时候,我在activitygroup中运行,它看起来是有用的,但是我如何实现它呢?有没有人有过活动小组的经验或有其他想法?

    2 回复  |  直到 14 年前
        1
  •  19
  •   synic    14 年前

    是的,您将实现一个ActivityGroup,它将是其他活动的容器。当用户单击其中一个按钮时,您将获得对LocalActivityManager的引用,并使用它来启动和嵌入内部活动。像这样:

    LocalActivityManager mgr = getLocalActivityManager();
    
    Intent i = new Intent(this, SomeActivity.class);
    
    Window w = mgr.startActivity("unique_per_activity_string", i);
    View wd = w != null ? w.getDecorView() : null;
    
    if(wd != null) {
        mSomeContainer.addView(wd);
    }
    

    注意,使用这种方法可能相当复杂,因为除非焦点刚好正确,否则按硬件按钮(如菜单按钮)只会触发ActivityGroup上的事件,而不是内部活动。在将内部活动添加到容器视图之后,您必须找到某种方法来集中内部活动,此时甚至会在内部活动中发生,并传播到容器活动。

    这是可以做到的,我已经做到了…它起作用了。只是比我想象的要复杂一点。

    总之,我通过查看tabhost代码获得了大部分信息,可以找到 here

        2
  •  4
  •   Rohit Sharma    14 年前

    检查以下链接

    http://ericharlow.blogspot.com/2010/09/experience-multiple-android-activities.html

    这是我的解决方案。希望对你也有帮助