0

我想在 tabhost 下有几页。带有选项卡的页面在应用程序启动后大约在第 2/3 页访问。我对如何链接到 tabhost 的第一页感到困惑(从没有 tabhost 的页面)

tabhost 中的每个选项卡都是一个单独的活动。

因此,当需要将用户发送到 tabhost 中的页面时,我是否启动 Tabhost 活动(从扩展 TabActivity),创建 tabhost,然后......以某种方式选择要加载选项卡中的哪个页面?像 tabhost.myTab.trigger.start(); 而不是直接加载其中一个选项卡活动..

因此,无论何时您离开标签主机,然后再回到它,您都在重新创建它,这是构建事物的正确方法吗?

谢谢!

4

2 回答 2

2

TabHost 方法被认为是在 Android 应用程序中创建选项卡的一种非常古老的方法。如果您将活动放置在这些选项卡中,则尤其如此。

现代 Android 应用程序使用 Fragments,并使用 Action Bar 框架将这些 Fragments 放置在选项卡中。

这可以通过使用从您的主 Activity 轻松完成

getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

这有几个优点。这意味着您的 Fragments 可以放置在 ViewPager 内(因此用户可以在它们之间滑动)。这也意味着您的选项卡将适应它们正在运行的设备。(在手机上,它们可能会出现在操作栏下方,但在平板电脑上,它们实际上会成为操作栏的一部分)。

根据您的实现,可以这样做,即在选项卡之间导航不会导致重新创建片段(如果这是您所追求的)。

可以在此处找到有关如何实现操作栏选项卡的详细指南

如果向后兼容性是一个问题,请查看令人惊叹的Action Bar Sherlock库。

于 2012-11-19T08:33:19.440 回答
1

我不完全理解你试图完成的行为。

不过,如果您不想重新发明轮子,我建议您安装 ActionBarSherlock 演示应用程序1以检查所需的行为是否已作为库示例之一实现。如果已经完成了,那么你可以去github项目看一下源代码,了解它是如何完成的,并为它做出贡献。

动作条 Sherlock 演示

https://play.google.com/store/apps/details?id=com.actionbarsherlock.sample.demos&hl=en

动作条 Sherlock Fragment 演示

https://play.google.com/store/apps/details?id=com.actionbarsherlock.sample.fragments&hl=en

于 2012-11-19T00:44:58.207 回答