Echando un vistazo al informe diff API para la vista previa de Android "L", veo que todos los métodos relacionados con los modos de navegación en la ActionBar
clase (como setNavigationMode()
, addTab()
, selectTab()
, etc.). ahora están en desuso.
La documentación explica:
Los modos de navegación de la barra de acción están en desuso y no son compatibles con las barras de acción de la barra de herramientas en línea. Considere usar otros patrones de navegación comunes en su lugar.
¿Cuál es el supuesto reemplazo?
Además, ¿son las "barras de acción de la barra de herramientas en línea" un nuevo concepto? No creo haber oído hablar de eso antes.
Respuestas:
La nueva Biblioteca de soporte de diseño de Android agrega TabLayout , proporcionando una implementación de pestañas que coincide con las pautas de diseño de materiales para pestañas . En este video
ViewPager
se puede encontrar un tutorial completo sobre cómo implementar pestañas.Obsoleto: El PagerTabStrip es parte de la biblioteca de soporte (y ha sido durante algún tiempo) y sirve como un reemplazo directo. Si prefiere las nuevas pestañas de estilo Google Play, puede usar la biblioteca PagerSlidingTabStrip o modificar cualquiera de los ejemplos proporcionados por Google SlidingTabsBasic o SlidingTabsColors como se explica en este video Dev Bytes .
fuente
NAVIGATION_MODE_LIST
es mucho más fácil, dado que todo lo que hizo fue agregar un Spinner y algunos ayudantes de devolución de llamada.NAVIGATION_MODE_LIST
? El mío lo enumera como obsoleto ...Ahora que los documentos de Android 5.0 están disponibles, tenemos la documentación oficial para el widget Toolbar :
Toolbar
También se puede usar un widget para reemplazar la barra de acción:La desaprobación de las pestañas en la barra de acción probablemente se deba a esto, ya que las barras de herramientas no pueden contener pestañas.
Además, está disponible para versiones anteriores de Android a través de la biblioteca appcompat. Vea esta publicación de Chris Banes para más información. Un experto:
fuente
Parece que agregaron una nueva clase llamada
android.widget.Toolbar
que se extiendeViewGroup
. También agregaron un nuevo métodosetActionBar(Toolbar)
enActivity
. No he probado todavía, pero parece que se puede envolver todo tipo deTabWidgets
,Spinners
o vistas personalizadas en unaToolbar
y utilizarlo como su barra de acción.fuente
Lo nuevo
Toolbar
no se puede usar para inflar varios objetos de línea, por lo que es imposible agregarle pestañas.Si desea usar un
Toolbar
like aTabWidget
, puede insertar algunos objetos Tab, pero solo con el viejo estilo Holo.Aquí hay una biblioteca personalizada que usa v7
Toolbar
comoTabWidget
con las nuevas animaciones de diseño de materiales, pero usa los mismos métodos de los antiguosActionBar Tabs
, por lo que puede adjuntarlaViewPager
a ella.fuente
Para el 'reemplazo' de ActionBar en desuso, cambié el tipo de mis variables de tipo ActionBar a PagerTabStrip, según (código antiguo en el comentario):
Un 'reemplazo' para el .selectTab (tabindex) de ~ actionBar fue usar el método .setCurrentItem (int) de ViewPager asociado, como este (código antiguo en el comentario):
Espero que esto sea útil.
fuente
Tuve el mismo problema y esta solución me fue muy bien:
En el archivo xml de diseño que contiene el visor, agregue un PagerTabStrip como se muestra:
Para controlar los títulos de las páginas, agregue una declaración de cambio a su archivo ViewPager:
fuente
FragmentTabHost también es una opción.
Este código es del sitio del desarrollador de Android:
fuente
Estos tutoriales me resultaron útiles al armar una barra de acción (ahora la 'barra de herramientas' - argh) que admite pestañas deslizantes con Material Design:
https://www.youtube.com/watch?v=Fl0xMuo10yA
http://www.exoguru.com/android/material-design/navigation/android-sliding-tabs-with-material-design.html
Tiene que sintetizar estos recursos para que coincida con su situación particular. Por ejemplo, es posible que no desee crear manualmente las pestañas en el mismo estilo que lo hizo el tutorial de exoguru.com.
fuente
Bueno, para mí manejar la barra de herramientas de navegación en desuso utilizando el widget de barra de herramientas v7 appcompat.
fuente
Creo que un reemplazo adecuado para cuando tiene tres o cinco pantallas de igual importancia es la Actividad de navegación inferior, esto se puede usar para cambiar fragmentos.
Notará que existe un asistente para esto en Android Studio, tenga cuidado, ya que Android Studio tiende a producir un código de placa de caldera demasiado complejo.
Puede encontrar un tutorial aquí: https://android.jlelse.eu/ultimate-guide-to-bottom-navigation-on-android-75e4efb8105f
Puede encontrar otro tutorial de calidad en Android Hive aquí: https://www.androidhive.info/2017/12/android-working-with-bottom-navigation/
fuente