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.
- Creación de una vista personalizada
- Android muestra teclado suave cuando el fragmento onResume
- ViewPager con FragmentPagerAdapter no muestra contenido
- android - vista de panel dual con indicador para el elemento de lista seleccionado
- En Android, ¿cómo desactivar el botón de inicio de sesión con respecto a EditText?
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.
- Diseño como tarjetas en android
- Crear sombra para el diálogo
- El reajuste de MediaPlayer de Android congela la interfaz de usuario
- ¿Cómo evitar que un fragmento se agregue varias veces?
- Llamar a setContentView () varias veces
- Prueba de un ViewPager y TabPageIndicator con Espresso
- Eliminar la sombra de barra de notificación en la aplicación de Android
- Balanceo horizontal en stackview
¿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'