在所有 Android 版本中实现选项卡

Posted

技术标签:

【中文标题】在所有 Android 版本中实现选项卡【英文标题】:Implementing tabs in all Android versions 【发布时间】:2012-08-08 06:36:23 【问题描述】:

我正在尝试在 android 中实现选项卡。

看了一些网上的教程,貌似是用TabActivity实现的。但 TabActivity 已被弃用。

Android 开发者参考建议对高于 HONEYCOMB 的版本使用 Fragments,但这显然不支持旧版本(今天大约 60% 的手机)。

那么,实现所有版本都支持的选项卡的最佳方法是什么?手动将选项卡构建到布局中会更容易吗?

【问题讨论】:

这篇[文章][1]可以满足所有需求..去看看..[1]:***.com/questions/2677698/… 查看Android's BottomNavigationView 【参考方案1】:

http://actionbarsherlock.com/

ActionBarSherlock 允许您像拥有 ~4.0 功能一样进行编程,即。片段和操作栏,但在低至 android 1.6 的设备上保持兼容

支持库很好,但还不完整。从 3.0+ 到更低的 UI,您将有一个时代,即使片段支持,也不支持操作栏。

【讨论】:

【参考方案2】:
TabActivity is deprecated.

=> 那又怎样,还是可以实现,没有问题。

The Android developer reference recommends using Fragments for versions above HONEYCOMB, 
but this is apparently not supported on older versions (about 60% of phones today).

=> 是的,它推荐,但您仍然可以实现和支持较低版本。检查Support Library和Using the Support Library

【讨论】:

如果您使用支持库,是否可以在不同的 Android 版本之间提供一致的用户体验?我担心使用对旧版本的支持可能会创建与最新 Android 版本格格不入的标签。 在有如此多的恐惧和担忧之前,请尝试至少执行一次。是的,我建议你试试ActionBarShareLock library【参考方案3】:

感谢您的回答,但决定手动实现选项卡会更容易。

采用 RadioGroup,对其进行完全定制,使其外观和行为都像一个标签。

然后使用 ViewFlipper 切换屏幕类似于the code given here。

添加了我想要切换的布局:

<ViewFlipper android:layout_
    android:layout_
    android:id="@+id/main_frame">
    <include android:id="@+id/tab1" layout="@layout/tab1_layout"/>
    <include android:id="@+id/tab2" layout="@layout/tab2_layout"/>
    <include android:id="@+id/tab3" layout="@layout/tab3_layout"/>
</ViewFlipper>

一个好处是它让我可以轻松地制作更好的标签,轻松控制和自定义页面更改的工作方式。它在所有手机上看起来都一样。

【讨论】:

以上是关于在所有 Android 版本中实现选项卡的主要内容,如果未能解决你的问题,请参考以下文章

iphone:需要在视图控制器中实现导航控制器,该控制器在选项卡栏中选择选项卡后出现

在标签栏控制器中实现表格视图?

使用 Fragments 为 Android 中的每个选项卡单独返回堆栈

在多个片段中的片段中实现选项卡

如何在tabview中的更改选项卡中实现转换?

Chrome 自定义选项卡 - 未触发意图 (Android)