Cómo obtener DrawerLayout para deslizarse sobre la barra ActionBar
Tengo un menú del cajón deslizante en una actividad, que tiene una barra de acción con algunas pestañas en ella.
Me gustaría que el cajón deslizante se deslice sobre las pestañas, no debajo de ellas.
- ¿Cómo hacer que el menú de aplicaciones de Facebook sea nuevo en Android?
- Construir Reproducir Interfaz similar a la música
- Android: las trampas de eliminar carpetas ldpi / mdpi
- Patrón de la interfaz de usuario de Android para mover los elementos de ListView arriba y abajo
- ¿Cómo detectar HTC Sense?
Esto es lo que parece ahora …
¿Alguna idea sobre cómo podría hacerse esto?
Nota: Entiendo que podría estar rompiendo algunas convenciones y patrones de interfaz de usuario aquí, y si no funciona en absoluto, buscaré alternativas. Pero me gustaría tener este trabajo primero.
EDIT: vea la siguiente captura de pantalla de la aplicación Google Play Music que hace exactamente lo que necesito. Vea la respuesta de @ CommonsWare abajo donde él está de acuerdo en que podría estar rompiendo la convención. Pero luego, dada la aplicación Play Music, puede que tampoco sea tan rara.
- ¿Cómo lograr la interfaz de usuario de Android como este diseño de imagen? Acerca de android: clipChildren
- Patrón de interfaz de usuario de las acciones rápidas de Android
- En el adaptador gridview, getView (position == 0) fue invocado demasiadas veces para medir el diseño cuando setImageBitmap () en un cargador
- Cancelar botones Hecho en la aplicación de calendario - ¿Es parte de la barra de acción?
- Mipmap Android, densidad de la imagen?
- Imágenes borrosas en el navegador de Android y WebView
- Cómo hacer que el segundo fragmento se solape en el primer fragmento mientras que la transición del fragmento
- Fragmento no se elimina visualmente
¿Alguna idea sobre cómo podría hacerse esto?
Realice una de las siguientes acciones:
-
Cambie de las pestañas de la barra de acción, tal vez a
ViewPager
y un indicador con pestañas (PagerTabStrip
,TabPageIndicator
de ViewPageIndicator) -
Averigüe si una implementación de un cajón de terceros existente aún no se ha actualizado a los nuevos estándares de la interfaz de usuario
-
Fork
DrawerLayout
y modificarlo para adaptarlo -
Gire su propio cajón de navegación desde cero
Entiendo que podría estar rompiendo algunas convenciones y patrones de IU aquí
Correcto .
Puede utilizar las librerías siguientes para obtener un modelo de navegación similar al de Google Play Music App.
- ActionBarSherlock (github)
- Fragmentos anidados (github)
- PagerSlidingTabStrip (github)
- NavigationDrawer (sitio de desarrolladores de Android)
- Último soporte v4 library
He creado un cajón de la navegación del proyecto con el ejemplo de la tira de la lengüeta en el github, lo miro.
A continuación se muestra la captura de pantalla de la misma.
Compruebe también esta biblioteca http://www.androidviews.net/2013/04/pager-sliding-tabstrip/ El individuo hizo un gran trabajo. Puede utilizarlo con un cajón de navegación y funciona perfectamente.
Por último, una manera limpia de conseguir el cajón de navegación sobre las pestañas deslizantes en este blog http://www.paulusworld.com/technical/android-navigationdrawer-sliding-tabs
Esto se puede hacer sin una biblioteca de terceros. Echa un vistazo a las muestras de Google Sliding Tabs
SlidingTabsBasic: http://developer.android.com/samples/SlidingTabsBasic/project.html SlidingTabsColors: http://developer.android.com/samples/SlidingTabsColors/project.html
También, compruebe hacia fuera este acoplamiento impresionante: http://manishkpr.webheavens.com/android-sliding-tabs-example/ Trabajó como un encanto para mí. 🙂
Tuve el mismo problema, pero la única solución que encontré fue usar pestañas dentro del fragmento interno (no fragmentActivity). No sé si fue la mejor solución, el único problema que tuve fue diseñar estas pestañas, para el resto, funciona perfectamente
Logré cumplir este requisito estableciendo el modo de navegación dentro de las funciones OnDrawerClosed y onDrawerOpened. Es una solución temporal ya que las fichas en realidad no desaparecen inmediatamente.
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); .. }
Si usted tiene algunos fragmentos con pestañas, y otros sin ella no se olvide de quitar pestañas onCreateView de fragmento que no tiene pestañas.
getActionBar().removeAllTabs();
No se puede utilizar simultáneamente la barra de navegación de Navigator y la bandeja de desplazamiento. Usted debe implementar el cajón de navegación con Actionbar y swipetabs por simples Tabhos. Puede utilizar tabhost para las pestañas y utilizar fragmentos para la vista interior de cada ficha. Los fragmentos se deben usar a través de viewpager para proporcionar efecto de desplazamiento / deslizamiento. Conectar las pestañas y viewpager con eachother a través de sus métodos
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TabHost android:id="@+id/tabHost" android:layout_width="match_parent" android:layout_height="match_parent" > <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <HorizontalScrollView android:layout_width="fill_parent" android:layout_height="wrap_content" android:fillViewport="true" android:scrollbars="none" > <TabWidget android:id="@android:id/tabs" android:layout_width="wrap_content" android:layout_height="wrap_content" > </TabWidget> </HorizontalScrollView> <FrameLayout android:id="@android:id/tabcontent" android:layout_width="match_parent" android:layout_height="match_parent" > <android.support.v4.view.ViewPager android:id="@+id/viewPager_home" android:layout_width="match_parent" android:layout_height="match_parent" /> </FrameLayout> </LinearLayout> </TabHost>
Reproducir música no utiliza ActionBar.Tab estándar Entonces puede implementar su propio contenedor de pestañas mediante la extensión de HorizontalScrollView y trabajar con ViewPager
Tengo lengüetas del uso dentro del fragmento del cajón. Resuelvo este problema añadiendo
getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
En onDrawerClosed()
y getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
En el método onDrawerOpend()
.
Espero que esto ayude.
- Utilizar Intents o un bus de eventos para comunicarse dentro de la misma aplicación
- Registros de Android 'GC_EXTERNAL_ALLOC' 'GC_FOR_MALLOC'