Android API级别的操作栏>;3.0但仍支持API<;3

Android API级别的操作栏>;3.0但仍支持API<;3,android,android-fragments,android-actionbar,android-maps,android-compatibility,Android,Android Fragments,Android Actionbar,Android Maps,Android Compatibility,还有一个兼容性问题 问题 我需要使用api level 3.0及更高版本中的选项卡式操作栏,在片段之间切换。但是,我还需要能够在api级别=3的本机操作栏,并为API级别2.x提供向后兼容性。还有一个操作栏兼容性示例项目(我相信是作为SupportAppNavigation列出的)。我认为这基本上是一样的。你想要的是。它使用API>=3的本机操作栏,并为API级别2.x提供向后兼容性。还有一个操作栏兼容性示例项目(我相信是作为SupportAppNavigation列出的)。我认为这基本上是一样

还有一个兼容性问题

问题

我需要使用api level 3.0及更高版本中的
选项卡式操作栏
,在
片段之间切换。但是,我还需要能够在api级别<3.0的不同情况下在这些
片段之间切换

我已经下载了一个自定义兼容性库,它允许我使用
谷歌地图
片段
,因此我不能使用库

问题

我如何在3.0及更高版本中实现选项卡式
ActionBar
解决方案,并同时满足3.0及更低版本的更大市场


任何帮助都是伟大的。

你想要的是。它使用API>=3的本机操作栏,并为API级别2.x提供向后兼容性。还有一个操作栏兼容性示例项目(我相信是作为SupportAppNavigation列出的)。我认为这基本上是一样的。

你想要的是。它使用API>=3的本机操作栏,并为API级别2.x提供向后兼容性。还有一个操作栏兼容性示例项目(我相信是作为SupportAppNavigation列出的)。我认为这基本上是一样的。

我建议您使用选项卡式动作栏功能

我假设您还需要
Fragment
中的
MapView
支持。为此,我建议从 (查看user1414726,并给出示例代码)


我认为这是一个比使用库更好的解决方案,尽管它使用的是不推荐的
LocalActivityManger
。但在我看来,这比使用库更好,因为每个
活动
都是我假设您正在使用的
MapViewActivity
的子类

我建议使用它来获得选项卡式操作栏功能

我假设您还需要
Fragment
中的
MapView
支持。为此,我建议从 (查看user1414726,并给出示例代码)


我认为这是一个比使用库更好的解决方案,尽管它使用的是不推荐的
LocalActivityManger
。但在我看来,这比使用库更好,因为每个
活动
都是我假设您正在使用的
MapViewActivity
的子类

所以我前一段时间设法想出了一个解决方案,只是花了一段时间才把它贴到这里

这是对我有效的解决方案。我需要使用ActionBar,但我还需要使用MapActivity和FragmentActivity,因此无法使用ActionBarSherlock

我所做的是:

  • 创建了一个名为CCActionBar的片段,该片段通过将自身添加为侦听器(解释如下)来处理CCTab的触摸。它还膨胀了一个名为action barlayout的布局,该布局安排了选项卡和图像,只需在运行时引用选项卡即可

  • 创建了一个名为CCTab的自定义视图,该视图表示操作栏的选项卡。当它被触摸时,它告诉它的听者(CCActionBar)它被触摸了

  • 在我的主布局xml文件中有一个操作栏容器,我在运行时根据API级别显示或隐藏该容器

  • 现在,在OnCreate方法的主要活动中,我检查API级别是否大于3.0。如果是,我只需实现标准的ActionBar,确保我的自定义ActionBar容器不可见。如果不是,我将设置自定义操作栏,并确保xml布局中的操作栏容器可见

    • 然后,我确保在使用任何一种方法的同时按下选项卡时,它的处理方式都是相同的,因此一旦设置完成,您就不必以任何不同的方式处理它

我希望这能在某个地方对某人有所帮助,或者至少能给你一个如何继续的想法。

所以我前一段时间设法想出了一个解决方案,我只是花了一段时间才把它贴到这里

这是对我有效的解决方案。我需要使用ActionBar,但我还需要使用MapActivity和FragmentActivity,因此无法使用ActionBarSherlock

我所做的是:

  • 创建了一个名为CCActionBar的片段,该片段通过将自身添加为侦听器(解释如下)来处理CCTab的触摸。它还膨胀了一个名为action barlayout的布局,该布局安排了选项卡和图像,只需在运行时引用选项卡即可

  • 创建了一个名为CCTab的自定义视图,该视图表示操作栏的选项卡。当它被触摸时,它告诉它的听者(CCActionBar)它被触摸了

  • 在我的主布局xml文件中有一个操作栏容器,我在运行时根据API级别显示或隐藏该容器

  • 现在,在OnCreate方法的主要活动中,我检查API级别是否大于3.0。如果是,我只需实现标准的ActionBar,确保我的自定义ActionBar容器不可见。如果不是,我将设置自定义操作栏,并确保xml布局中的操作栏容器可见

    • 然后,我确保在使用任何一种方法的同时按下选项卡时,它的处理方式都是相同的,因此一旦设置完成,您就不必以任何不同的方式处理它

我希望这对某些人有所帮助,或者至少让您了解如何继续。

如果不取消地图片段支持,我无法实现这一点?@discs2-要提供3.0之前的片段支持,您需要使用兼容性库。ActionBarSherlock是兼容性库的一个扩展,所以我不明白为什么需要放弃映射片段支持。你能再解释一下你的担忧吗?为了实现google地图和片段功能,我必须使用兼容性库的扩展,所以我的担忧是我不能同时使用这两种功能