选项卡上的Android导航抽屉

sur*_*udi 26 tabs android android-actionbar navigation-drawer

我正在使用支持库中提供的新导航抽屉.使用抽屉和标签时,抽屉菜单将显示在标签下方,如下所示.如何确保选项卡上显示抽屉菜单.(它应该显示抽屉菜单,好像没有标签)

没有标签的抽屉菜单 在此输入图像描述

带标签的抽屉菜单

在此输入图像描述

小智 17

我得到了同样的问题,我从Roman Nurik(Android团队)得到的答案是导航抽屉不应该与Action Bar选项卡一起使用.

可以在此处找到讨论:https: //plus.google.com/u/1/116515063230772720916/posts/8dWEkFcbTFX

  • 这是8个月后,许多谷歌应用程序仍然使用标签和导航抽屉(至少播放,音乐和YouTube),所以我猜这个建议不再相关. (13认同)
  • @dpk实际上,完整的引用是"你不应该使用带有操作栏标签的导航抽屉.如果你的目标是使用类似于Google Play音乐的用户界面,你应该手动实现标签." 所以可以在抽屉上使用标签,而不是操作栏标签.在音乐应用程序中,您可以看到他们在操作栏中使用"所有音乐"和"在设备上"的微调器导航样式,因此显然库中的选项卡不能是"操作栏选项卡",但是而不是定制的标签,这不是太难. (6认同)
  • 他们没有为所有人修复此错误,而是在自己的应用程序中使用了自定义版本.对谷歌感到羞耻! (5认同)
  • 那么谷歌游戏应用程序使用的是什么?如果您在抽屉中选择我的游戏,它将显示带有指示器的viewpager,如果您再次按下抽屉,它将显示在带有指示器的viewpager上方. (4认同)
  • 这显然是来自谷歌Android团队的**设计模式*. (3认同)

and*_*esh 11

创建一个单独的片段,说TabsFragment,并在主活动的片段容器中添加片段.

可以使用以下代码在选项卡片段内添加选项卡.

private FragmentTabHost mTabHost;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    mTabHost = new FragmentTabHost(getActivity());
    mTabHost.setup(getActivity(), getChildFragmentManager(), R.id.fragment1);

    mTabHost.addTab(mTabHost.newTabSpec("TabA").setIndicator("TabA"),
           TabA.class, null);
    mTabHost.addTab(mTabHost.newTabSpec("TabB").setIndicator("TabB"),
            TabB.class, null);

    return mTabHost;
}
Run Code Online (Sandbox Code Playgroud)

这里,TabA和TabB是选项卡的单独片段.您可以在相应的片段中实现相应选项卡的功能.参考:http://developer.android.com/reference/android/support/v4/app/FragmentTabHost.html