在API级别操作栏> 3.0,但仍支持API <3.0(Action Bar in AP

2019-09-20 21:54发布

另一个问题的兼容性。

问题

我需要使用一个tabbed action bar在API级别3.0和更大之间切换fragments 。 然而,我还需要能够在它们之间进行切换fragments以某种方式在API级别<3.0。

在作品中的扳手的是,我已经下载了一个自定义的兼容性库,允许我用事实google mapsfragments ,所以我不能使用图书馆。

问题

我如何能实现一个标签式ActionBar中3.0和更高的解决方案,也迎合了较大的市场是3.0和少吗?

任何帮助将是盛大的。

Answer 1:

你需要的是ActionBarSherlock 。 它使用本地操作栏为API> = 3和提供用于向后API级别2.x的兼容性 另外还有一个操作栏的兼容性样本项目(列为SupportAppNavigation,我相信)。 我认为这基本上是同样的事情。



Answer 2:

所以我设法弄清楚一个解决方案前一阵子,它只是我花了一段它张贴在这里。

这是对我工作的解决方案。 我需要用一个动作条,但我也需要使用MapActivity还有FragmentActivity因此不能够使用ActionBarSherlock。

我所做的是以下几点:

  • 通过加入本身作为监听器创建了一个名为CCActionBar片段,其处理CCTab的的触摸(在下面解释)。 它还膨胀具有标签和排列的图像布局称为动作barlayout,只是参考的标签在运行时。

  • 创建一个名为CCTab自定义视图代表操作栏的选项卡。 当它触动它告诉它的监听器(CCActionBar)它的被感动。

  • 在我的主要布局的xml文件有一个动作条容纳我展示或根据API级别在运行时隐藏。

  • 现在我在我的onCreate方法主要活动检查我的API级别是否大于3.0或不。 如果是我刚刚实施的标准动作条,确保我的自定义操作栏容器是看不见的。 如果没有设置我的自定义操作栏,并确保我的动作条容纳我的XML布局是可见的。

    • 然后我要确保当按下一个标签同时使用这两种方法是相同的方式处理,所以一旦其设置您不必以不同方式处理它的任何。

我希望这可以帮助别人的地方,或者至少给你如何进行的想法。



Answer 3:

我会建议是使用ActionBarSherlock获得标签操作栏功能。

我假设你还需要一个MapView支持Fragment 。 为此,我建议从溶液中的片段(蜂窝)的MapView (看user1414726答案示例代码)。

我认为这是比不过它使用过时的利用图书馆更好的解决方案LocalActivityManger 。 但在我看来,它比利用图书馆,每一个更好的主意Activity是的一个子类MapViewActivity我假设你正在使用。



文章来源: Action Bar in API Level > 3.0 but Still Support API < 3.0