我正处于开发应用程序的概念化/设计阶段,我遇到了一些障碍。实际上,我在寻找一种方法,将一个活动嵌入到另一个活动的ui中,类似于tabhost/tabactivity。屏幕顶部会有一个包含其他活动的窗口,下面是独立于上述活动且始终可见的按钮和控件。用户将能够在窗口中从一个活动导航到另一个活动,而不会对下面的控件造成任何更改。
在研究这个问题时,我遇到了activitygroup,它看起来很有用,但是我该如何实现它呢?有没有人有活动小组的经验或有其他想法?
最佳答案
是的,您将实现一个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