Android ActionBar返回按钮和选项卡

10

我想创建一个类似 Google+ 应用的 ActionBar 和带有选项卡的导航。

我使用了这个示例作为起点,现在我有了一个很棒的 actionbar:

我还包括了一个 ViewPager 和一个 TabHost 来实现选项卡和左右滑动 Fragment。

我需要做的是在 Honeycomb 之前的版本中显示后退箭头。如果我设置 getActionBar().setDisplayHomeAsUpEnabled(true),则箭头会自动显示在 >= Honeycomb 版本中。

  • 在 Honeycomb 之前的版本中,我应该如何做到这一点呢?

我还想要像 Google+ 应用那样的选项卡。

这就是我的选项卡栏的样子:

移除了失效的 ImageShack 链接

...而这就是我想要的样子:

移除了失效的 ImageShack 链接

我找不到任何样式选项卡栏与那个相似的示例。


在你的操作栏中使用自定义视图。 - Padma Kumar
4个回答

21

我建议你使用ActionBarSherlock来实现在Android < 3上的ActionBar兼容性。它是一个比开发者页面提供的示例更好的实现。

使用此软件包,当您添加以下行到您的活动时,返回箭头将出现。

getSupportActionBar().setDisplayHomeAsUpEnabled(true);

关于Google+标签页,我发现这个小部件 ViewFlow 非常有用,并且外观完全相同。此外,您不会遇到任何向后兼容性问题。请查看CircleFlowIndicator示例。


还有一个ViewPagerIndicator库,你可以用它来制作选项卡,这个库是由ActionBarSherlock的同一位开发者提供的。 - James Goodwin

4
你可以使用ActionBarSherlockViewPagerViewPagerIndicator来实现所需的外观。这些库也适用于ICS之前的版本。
正如miguel.rodelas建议的那样,使用getSupportActionBar().setDisplayHomeAsUpEnabled(true)来设置主页箭头。在onOptionsItemSelected中,您可以通过id android.R.id.home捕获它。

3
ActionBar actionBar = getActionBar();
        actionBar.setDisplayShowHomeEnabled(false);
        actionBar.setDisplayShowTitleEnabled(false);

//在此处使用您的自定义xml视图

View actionBarView = getLayoutInflater().inflate(R.layout.action_bar_custom_view, null);
        actionBar.setCustomView(actionBarView);
        actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);

//您的点击监听逻辑

setListenerForActionBarCustomView(actionBarView);

2

如上所述,下载ActionBarSherlock并将其导入到此处作为库 https://api.github.com/repos/JakeWharton/ActionBarSherlock/zipball/4.2.0

  • 使用getSupportActionBar代替getActionBar
  • 下载支持库
  • 将您的类扩展为SherlockActivity而不是Activity
  • 与片段相同,使用SherlockFragment

然后只需复制您的代码,应该可以完美地工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接