【问题标题】:Android: Understanding embedded activities and viewsAndroid:了解嵌入式活动和视图
【发布时间】:2024-04-27 07:20:02
【问题描述】:

在我的应用程序中,我有一个自定义选项卡控件和句柄,当点击选项卡时,它会显示与选项卡对应的内容。每个选项卡还与一个活动相关联。但是,该活动的内容只是显示选项卡内容的屏幕部分。

我有一个标签内容的视图,它本质上是一个容器。目前,当您选择一个选项卡时,我以编程方式将此容器中所有视图的可见性设置为 GONE,使它们不可见,然后将当前选定视图的可见性设置为 VISIBLE。这一切都有效,但它让我想知道 Google 的文档将什么称为“嵌入式活动”。

我的印象是,一旦我启动了其中一个嵌入式活动,与该活动相关联的内容就会出现在前台,而上一个活动的内容会在它后面,基本上使其不可见。当这个活动关闭时,与该活动相关的内容会消失,然后之前的活动会连同它的内容一起显示。换句话说,Android 处理与其活动相关的内容切换。

就目前而言,我手动设置每个视图的可见性。通常,如果一个活动的内容占据了整个屏幕,然后活动关闭,整个内容就会消失,UI 会恢复到最后一个活动及其内容。但我正在处理共享屏幕同一部分的多个活动,这只是屏幕的一部分。也许术语“嵌入式活动”是不正确的,但这直接来自 Google 的文档。也许我只是不明白视图和嵌入式活动应该如何交互。

我还应该指出,我更愿意找到适用于 Android 1.5 的解决方案。我遇到了一种叫做 Fragments 的东西,它可能用于处理视图的自动创建和销毁,但我不确定。即使是这样,它也是为了蜂巢。目前我正在使用 ActivityGroup 来处理多个活动,但只是遇到了说明其已弃用的文档。

【问题讨论】:

    标签: android view android-activity embedded


    【解决方案1】:

    似乎this answer 到“使用 ActivityGroup 嵌入活动”应该可以满足您的需求。

    【讨论】:

    • 我实际上阅读了该帖子并使用了提供的解决方案。然而,该解决方案清楚地显示了手动将活动的视图添加到容器中。这并没有解决我关于 Android 是否能够自动处理这些视图的问题。据我了解,如果将视图添加到容器中,则必须将其删除,除非有某种我不知道的机制来处理此问题。
    • 啊。从 OP 不确定您是否还在使用 ActivityGroup。因此,您在 ActivityGroup 容器中成功启动了多个嵌入式活动。为什么您希望 ActivityGroup 容器像标准窗口系统一样工作?如果是这样,ActivityGroup 将无法同时显示多个嵌入式活动。
    • 我不同意这一点。由于我必须编写自己的代码来处理嵌入视图的活动组中活动的视图切换,因此您会认为这是许多开发人员的常见做法,并且 Android 会内置该功能。
    • 您现在似乎知道了这个类比:activity-layout 对于 ActivityGroup 就像 view 对于 ViewGroup。你让它工作了。此时,也许您应该记录增强请求以更改行为。
    最近更新 更多