java - 如何在不推荐使用 tabhost 的情况下实现 Android 选项卡菜单

标签 java android layout android-fragments android-tabhost

我的问题听起来很简单,但我似乎找不到足够的答案。

我正在尝试为平板电脑设计一个应用程序,该应用程序在屏幕的顶部四分之一处显示一些信息,然后在顶部四分之一下方有一个用于信息的选项卡式菜单。

基本上我要找的是:

┌─────────────────────────────────────
│
│ Top of Page
│
├───────┬───────┬───────┬───────┬─────
│ Tab 1 │ Tab 2 │ Tab 3 │ Tab 4 │
│       └───────┴───────┴───────┴─────
│
│ Bottom of page
│
│
│
⁞

我原本打算使用带有多个标签的标签主机;但我意识到它现在已被弃用,所以我正在寻找最有效、最新的方法来为 Android 开发执行此操作。 已经实现的最简单的事情是操作栏,但它位于应用程序的顶部——这也不是我想要的。

我在另一个线程上读到应该改用 Fragments;但是考虑到 tabhosts 的简单性,我不太明白 fragment 如何替换它,因为据我所知,它没有内置的选项卡选项;只列出。 (当然我可能是错的)

我发现的其他选项是 ActionbarSherlock,并且只使用更改布局的按钮。

我想总的来说我要问的是,什么是最好的、最新的向后兼容的方式来重现我的设计?

编辑: 到目前为止,我从研究中发现的唯一一件事仍然是说我将 fragment 与兼容性 API 一起使用,或者只是使用按钮和 FrameLayout。 我真的对使用操作栏不感兴趣,因为它不会低于应该位于顶部的布局。

或者即使 TabHost 已被弃用,仍然继续使用它真的会很糟糕吗?

最佳答案

CMIIW 但我认为 tabhost 尚未弃用。即使它被弃用了,也不意味着你不能使用它,它只是意味着有更好的选择。如果您认为自己真的想要并愿意使用它,请选择 Tabhost。

对于替代方法,您可以看看这个: alternative of tabactivity或者如果你想更好地理解使用 Tabhost how do i use tabhost .

替代方法包括: 使用带有选项卡式指示器的 ViewPager,例如 PagerTabStrip、ViewPagerIndicator 项目中的 TabPagerIndicator、PagerSlidingTabStrip 等。

在操作栏中使用选项卡(注意:这些将在某些设备尺寸和方向上转换为下拉列表)

使用 FragmentTabHost

在常规 Activity 中使用 TabHost 和 TabWidget

以下示例项目演示:

PagerTabStrip:https://github.com/commonsguy/cw-omnibus/tree/master/ViewPager/TabPager

TabPageIndicator:https://github.com/commonsguy/cw-omnibus/tree/master/ViewPager/VPI

操作栏选项卡:https://github.com/commonsguy/cw-omnibus/tree/master/ActionBar/TabFragmentDemo

TabHost 和 TabWidget:https://github.com/commonsguy/cw-omnibus/tree/master/WidgetCatalog/Tab

请注意,前三个示例都使用 ActionBarSherlock,因此它们在 Android 2.x 设备上运行。第四个应该可以在 Android 1.0 之后的任何系统上运行。

关于java - 如何在不推荐使用 tabhost 的情况下实现 Android 选项卡菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13505236/

相关文章:

java - 如何使用 Apache Jena 在 RDF 文档中编写新节点?

android - 使用区域特定字符串的标准方法是什么?

android - android中的屏幕兼容性问题

android - 如何在选择器的可绘制对象中应用色调?

android - 如何更改选定/聚焦的 ListView 项目中的字体颜色?

java - 为什么我的 SpringLayout 与示例不同?

java.io.文件名过滤器

java - 根据某些条件将括号和星号插入字符串

java - 如何将 TextView 准确放置在用户在 Eclipse for Android 中长按的位置

android - 数据库升级过程中如何保留和升级SQLITE数据库