Anidar las pestañas en Android 4 con la biblioteca de soporte (ActionBarSherlock)
Tengo serios problemas para obtener tres capas de pestañas anidadas para trabajar en una aplicación que se ejecuta desde Android 2.1 y parece Android 4 (utiliza fragmentos de biblioteca de soporte).
La meta
- La aplicación debería tener una ActionBar (works, currenly usa ActionBarSherlock)
- 3 lengüetas fijas en la pantalla principal, que no se mueven en el ActionBar incluso si la pantalla es lo suficientemente grande. La segunda de estas pestañas contiene …
- Acerca de 4 pestañas que se cargaron desde un servidor cuando el usuario inició sesión la primera vez. Cada uno de ellos contiene
- Alrededor de 10 pestañas (como en Play Store) que se cargaron desde un servidor cuando el usuario inició sesión por primera vez. Mi idea aquí es utilizar ViewPagerIndicator, puesto que esa biblioteca está escrita por el mismo individuo que ActionBarSherlock que debe guardar problemas abajo a un mínimo. Pero estoy abierto a ideas aquí). Cada una de estas pestañas deslizable contiene algo que actualmente es un fragmento, pero podría ser modificado.
El problema
Cuando se trataba de una aplicación para Android 2, simplemente utilizaba TabActivities anidadas, pero éstas no funcionan con todas las cosas de Android 4. No entiendo cómo hacer esto probablemente, especialmente la restricción "no se puede anidar fragmentos" me está causando dolores de cabeza. Además, parece que sólo se puede usar un FragmentManager por Actividad, por lo que mi idea de tener uno en cada una de las pestañas de la segunda fila no funcionó (Todo excepto la primera pestaña permaneció vacía). ¿Cómo hacer esto de la manera correcta?
- No hay actividad Excepción al usar viewpager y fragmentos dentro de fragmentos
- Java.lang.IllegalStateException: ViewPager no se ha consolidado (usando el indicador JakeWharton ViewPager)
- Cómo implementar en el icono de escuchar el clic en IconPageIndicator
- Añadir ViewPagerIndicator a Android Studio
- Navegación de la barra de acciones de Android deja de funcionar
(Por favor, entienda que "Usar un diseño de GUI diferente" no es una opción ya que esto es lo que el cliente pidió y él no reconsiderará)
- Indicar después de pasar la última página en ViewPager
- Cómo agregar una vista personalizada en ViewPager para un tutorial
- Fragmento de actualización de Android ViewPager
- Excepción "recurso no es un dibujable" mientras infla com.viewpagerindicator.TabPageIndicator
- ¿Cómo hacer actualizaciones de ViewPager con frecuencia?
- Quitar TabIndicator de PagerTabStrip en un ViewPager
- ViewPager dentro de Fragmento pierde contenido al volver a él
- Espacio entre elementos del indicador
PagerAdapter
no requiere Fragments
como niños. Puede inflar / administrar sus propias vistas personalizadas. Para que pueda continuar utilizando TabActivities
anidado. O bien, puede colocar Fragments
en el nivel superior y administrar sus propias Views
en el ViewPager
nivel ViewPager
.
También podría, en teoría, utilizar ViewFlipper
si desea conservar los fragmentos en ViewPager
. Tendrás que escribir tu propio LinearLayout
con Buttons
como pestañas, pero esto es fácil. Si usted está buscando la mirada de Holo, fije simplemente el estilo a los encontrados en ABS.
Otra opción es utilizar TabHost
sin utilizar TabActivity
. Incluso puedes usarlo con Fragmentos. Vea el ejemplo aquí .
También tenga en cuenta: Si está buscando el estilo de Google Play de ViewPagerIndicator, ahora está incluido en el paquete de soporte: PagerTitleStrip .
Me imagino que su mejor opción es utilizar Fragmentos como el nivel superior, ya que esto ayudará con el consumo de memoria.
Dicho esto,
Debo decir que esto suena como un terrible patrón de interfaz de usuario. Aún peor, estamos hablando de muchas opiniones infladas en una Activity
. Usted puede ejecutar en problemas de memoria aquí, dependiendo de lo que se muestra. Sugiero el uso intensivo de ViewStubs
y el reciclaje si mantiene el ViewPager
en la parte inferior.
Sigue tratando de empujar al cliente hacia el uso del patrón de spinner ActionBar de nivel superior (3 pestañas principales), o incluso considerar el patrón de cajones deslizantes de lujo. Tal vez esa suave animación podría ser suficiente para influir en su opinión.
Remítase a la página web oficial del diseño y muestre ejemplos de patrones de navegación populares como los que se encuentran en Gmail, YouTube, Google+, Evernote, etc. Recientemente he tratado con un cliente solicitando el mismo patrón que usted describe y después de semanas de empujar Fue capaz de convencerlos de que más de `2 capas de pestañas es inaceptable .
También puedes mostrarles mi página de Google+ Muro de la vergüenza , resaltando los malos patrones de diseño utilizados en las populares aplicaciones de Android : Android UI Anti-Patterns . Todos los derechos reservados
- Android "ya se ha añadido a la salida" error para jar en una dependencia de proyecto
- IdlingResource Espresso con RxJava