Android DrawerLayout no funciona con ViewPager?

He implementado ViewPager dentro de un DrawerLayout que está funcionando correctamente pero la vista de la lista del menú del cajón que no se exhibe correctamente con la barra de acción que exhibirá debajo de las lengüetas de ViewPager. La figura siguiente de la esperanza le dará una idea. Y estoy usando la biblioteca de actionbarsherlock .

Introduzca aquí la descripción de la imagen

¿Cómo puedo mostrar la vista de la lista del menú de la gaveta exactamente debajo de la barra de acción ??

Lo que he intentado.

Actividad 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); 

Diseño de la actividad xml:

  <?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <LinearLayout android:id="@+id/ll_dashboard_viewpager" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" /> <ListView android:id="@+id/left_drawer" android:layout_width="200dip" android:layout_height="match_parent" android:layout_gravity="start" android:background="@color/abs__background_holo_light" android:cacheColorHint="#00000000" android:choiceMode="singleChoice" android:dividerHeight="1dip" /> </android.support.v4.widget.DrawerLayout> 

Es el comportamiento del cajón con las pestañas de la barra de acción . No puedes cambiarlo.

Encuentra alguna información oficial en esta respuesta: Android Navigation Drawer sobre las pestañas

Y las soluciones en esta respuesta: Obtener DrawerLayout para deslizarse sobre la barra de acción

Consideraría usar esta gran biblioteca: PagerSlidingTabStrip

El diseño del cajón es el padre del buscapersonas. prueba esto

 <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent" > <android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/pager" android:layout_width="match_parent" android:layout_height="match_parent" > </android.support.v4.view.ViewPager> <!-- Framelayout to display Fragments --> <FrameLayout android:id="@+id/frame_container" android:layout_width="match_parent" android:layout_height="match_parent" /> <!-- Listview to display slider menu --> <ListView android:id="@+id/list_slidermenu" android:layout_width="240dp" android:layout_height="match_parent" android:layout_gravity="start" android:background="@color/list_background" android:choiceMode="singleChoice" android:divider="@color/list_divider" android:dividerHeight="1dp" android:listSelector="@drawable/list_selector" /> </android.support.v4.widget.DrawerLayout> 

No estoy seguro acerca de las pestañas de la barra de acciones, pero puedes usar la opción Pager Tab Strip en combinación con el Navigation Drawer para obtener un modelo de navegación similar al de Google Play Música, echa un vistazo a mi publicación

Su XML es incorrecto.

ListView debe establecer layout_height como match_parent lugar de wrap_content .

EDITAR:

También el DrawerLayout debe ser toplevel en lugar de ser exprimido en LinearLayout . Consulte la documentación de cómo utilizar DrawerLayout : http://developer.android.com/training/implementing-navigation/nav-drawer.html

¿Ha utilizado FrameLayout? El contenido mostrado en el último FrameLayout aparecerá en la parte superior. Oculta esa "capa" y la FrameLayout "debajo" de ella (FrameLayout antes de la última FrameLayout), aparecerá. En su DrawerLayout, la Lista de Gavetas debe estar en el último FrameLayout y Fragments en el segundo último, en el que puede mostrar ViewPager.

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/main_parent_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <android.support.v4.widget.DrawerLayout android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent" > <FrameLayout android:layout_width="match_parent" android:layout_height="match_parent" > <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <LinearLayout android:id="@+id/content_frame" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="9" android:orientation="vertical" > <!-- Fragments will attach in this container, and have ViewPager --> </LinearLayout> </LinearLayout> </FrameLayout> <!-- attach drawer --> <FrameLayout android:id="@+id/drawer" android:layout_width="300dp" android:layout_height="match_parent" android:layout_gravity="start" android:background="@color/grey" android:choiceMode="singleChoice" android:clickable="true" android:divider="@android:color/transparent" android:dividerHeight="0dp" > <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="#00000000" android:orientation="vertical" > <ListView android:id="@+id/navigation_drawer_list" android:layout_width="match_parent" android:layout_height="match_parent" android:choiceMode="singleChoice" android:groupIndicator="@null" /> <!-- </LinearLayout> --> </LinearLayout> </FrameLayout> </android.support.v4.widget.DrawerLayout> </LinearLayout> 

Para mostrar el diseño del cajón justo debajo de la barra de herramientas, use el código siguiente en su activity_main.xml

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:orientation="vertical" android:layout_height="match_parent" android:layout_width="match_parent" android:fitsSystemWindows="true"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" app:popupTheme="@style/AppTheme.PopupOverlay"/> <android.support.v4.widget.DrawerLayout android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent" tools:openDrawer="start"> <android.support.design.widget.NavigationView android:id="@+id/navigation_view" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="start" android:fitsSystemWindows="true" app:menu="@menu/activity_main_drawer" /> </android.support.v4.widget.DrawerLayout> </LinearLayout> 
  • Android: ¿Cómo puedo evitar que DrawerLayout pase eventos táctiles a la vista subyacente
  • Cómo configurar el recuento de notificaciones no leídas en NavigationView de DrawerLayout?
  • ¿Cómo mostrar el DrawerLayout cuando se desliza de izquierda a derecha, no importa dónde?
  • Toggle DrawerLayout con solo título (NO Icono de la aplicación)?
  • Android, ¿cuál es la clase equivalente de DrawerLayout cuando no se usa la biblioteca de soporte?
  • Configuración del icono de navegación en Android ActionBar
  • Logo de ActionBar mover hacia la izquierda
  • Cómo configurar el icono de Disposición de cajones en el lado derecho de la pantalla del dispositivo?
  • Android.support.v7 Toolbar & DrawerLayout- cómo ocultar icono de Hamburger
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.