让DrawerLayout滑过ActionBar

我在一个活动中有一个滑动抽屉菜单,它有一个操作栏,上面有一些标签。

我想让滑动抽屉滑过标签,而不是它们下方。

这就是它现在的样子……

操作栏选项卡下的滑动菜单

关于如何做到这一点的任何想法?

注意:我知道我可能在这里打破了一些约定和UI模式,如果它根本不起作用,我会看一些替代方案。 但是我想先让它工作。

编辑:请参阅下面的Google Play音乐应用屏幕截图,该应用完全符合我的需求。 请参阅下面@ CommonsWare的答案,他确实同意我可能违反惯例。 但是,鉴于播放音乐应用程序,它可能也不是那么罕见。

正确导航,标签正确滑动

关于如何做到这一点的任何想法?

请执行以下任何操作:

  • 切换到操作栏选项卡,可能是ViewPager和选项卡式指示器( PagerTabStrip中的TabPageIndicator ,TabPageIndicator)

  • 查看现有的第三方抽屉实现是否尚未更新到新的UI标准

  • Fork DrawerLayout并修改它以适应

  • 从头开始滚动您自己的导航抽屉

我知道我可能会破坏一些约定和UI模式

正确 。

您可以使用以下库来获取类似于Google Play音乐应用的导航模型。

  • ActionBarSherlock(github)
  • 嵌套片段(github)
  • PagerSlidingTabStrip(github)
  • NavigationDrawer(Android开发者网站)
  • 最新支持v4库

我在github上创建了一个带有Tab Strip Example的项目导航抽屉,看看它。

下面是它的截图。

导航抽屉页滑动标签条

检查这个图书馆http://www.androidviews.net/2013/04/pager-sliding-tabstrip/这家伙做得很好。 您可以将它与导航抽屉一起使用,它可以很好地工作。

最后,在这篇博客中,通过滑动标签实现导航抽屉的简洁方法http://www.paulusworld.com/technical/android-navigationdrawer-sliding-tabs

这可以在没有第三方库的情况下完成。 查看Google的Sliding Tabs示例

  SlidingTabsBasic: http://developer.android.com/samples/SlidingTabsBasic/project.html SlidingTabsColors: http://developer.android.com/samples/SlidingTabsColors/project.html 

另外,看看这个很棒的链接: http ://manishkpr.webheavens.com/android-sliding-tabs-example/对我来说就像一个魅力。 🙂

我遇到了同样的问题,但我find的唯一解决方案是在内部片段中使用制表符(而不是fragmentActivity)。 我不知道它是否是最好的解决方案,我唯一的问题是设计这个标签,其余的,它完美地工作

我设法通过在OnDrawerClosed和onDrawerOpened函数中设置navigationMode来实现此要求。 这是一个临时修复,因为标签实际上不会立即消失。

  public void onDrawerClosed(View view) { getActionBar().setTitle(mTitle); if(getActionBar().getTabCount()>0) //Add tabs when the fragment has it getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); ... } 

  public void onDrawerOpened(View drawerView) { getActionBar().setTitle(mDrawerTitle); getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD); .. } 

如果您有一些带有选项卡的片段,而没有它的其他片段,请不要忘记删除没有选项卡的片段的创建查看。

  getActionBar().removeAllTabs(); 

Actionbar Navigaton Drawer和SwipeTabs无法同时使用。 您应该使用Actionbar和swipetabs通过简单的Tabhost实现Navigation Drawer。 您可以将Tabhost用于选项卡,并将片段用于每个选项卡的内部视图。 应通过viewpager使用片段来提供滚动/滑动效果。 通过他们的方法相互连接选项卡和viewpager

             

播放音乐不使用标准ActionBar.Tab然后您可以通过扩展Horizo​​ntalScrollView并与ViewPager一起使用来实现自己的tab容器

我在抽屉的片段里面使用了标签。 我解决了这个问题

 getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 

onDrawerClosed()getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);onDrawerOpend()方法中。

我希望这能帮到您。