Android DrawerLayout无法使用ViewPager?

我已经在DrawerLayout中实现了ViewPager它正常工作但是Drawer菜单列表视图没有正确显示它将显示在ViewPager选项卡下面的操作栏。希望下面的图将给你一个想法。 我正在使用actionbarsherlock库。

在此处输入图像描述

如何在操作栏下方显示抽屉菜单列表视图?

我试过的。

活动OnCreate():

setContentView(R.layout.activity_layout); mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); mDrawerList = (ListView) findViewById(R.id.left_drawer); mLinearLayout = (LinearLayout)findViewById(R.id.ll_viewpager_layout); // set a custom shadow that overlays the main content when the drawer opens mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START); // set up the drawer's list view with items and click listener mDrawerList.setOnItemClickListener(new DrawerItemClickListener()); mDrawerToggle = new ActionBarDrawerToggle( this, /* host Activity */ mDrawerLayout, /* DrawerLayout object */ R.drawable.ic_drawer, /* nav drawer image to replace 'Up' caret */ R.string.app_name, /* "open drawer" description for accessibility */ R.string.app_you /* "close drawer" description for accessibility */ ) { public void onDrawerClosed(View view) { } public void onDrawerOpened(View drawerView) { } }; mDrawerLayout.setDrawerListener(mDrawerToggle); invalidateMenuItems(); mViewPager = new ViewPager(this); mViewPager.setOnPageChangeListener(this); mViewPager.setId(1); mViewPager.setOffscreenPageLimit(7); mLinearLayout.addView(mViewPager); mTabsAdapter = new TabsAdapter(this, mViewPager,mActionBar); mTabsAdapter.addTab(mActionBar.newTab().setText("Fragment"),Fragment.class, null); mTabsAdapter.addTab(mActionBar.newTab().setText("Fragment"),Fragment.class, null); mTabsAdapter.addTab(mActionBar.newTab().setText("Fragment"),Fragment.class, null); mTabsAdapter.addTab(mActionBar.newTab().setText("Fragment"),Fragment.class, null); 

活动布局xml:

       

这是带有操作栏标签的抽屉行为。 你无法改变它。

在这个答案中find一些官方信息: 选项卡上的Android导航抽屉

这个答案的解决方法: 让DrawerLayout滑过ActionBar

我会考虑使用这个很棒的库: PagerSlidingTabStrip

抽屉布局是视图寻呼机的父级。 尝试这个

         

我不确定Action Bar标签,但你可以使用Pager Tab Strip结合导航抽屉来获得类似Google Play音乐的导航模型,看看我的post

您的XML不正确。

ListView应将layout_height设置为match_parent而不是wrap_content

编辑:

DrawerLayout也应该是顶层而不是被挤压到LinearLayout 。 查看如何使用DrawerLayout的文档: http : //developer.android.com/training/implementing-navigation/nav-drawer.html

你用过FrameLayout吗? 最后一个FrameLayout上显示的内容将显示在顶部。 你隐藏那个“图层”和FrameLayout“下面”它(FrameLayout在最后一个FrameLayout之前)将会显示出来。 在DrawerLayout中,抽屉列表应位于倒数第二个的最后一个FrameLayout和Fragments中,您可以在其中显示ViewPager。

                   

要在工具栏正下方显示抽屉布局,请使用activity_main.xml中的代码