Menú Navegación Páginas

El blog de Antonio Leiva sobre diseño y desarrollo de interfaces en Android

ActionBarCompat (Parte 3): Migrando desde ActionBarSherlock

ActionBarCompat (Parte 3): Migrando desde ActionBarSherlock
  • Twitter
  • Facebook
  • Google Plus
  • LinkedIn

Tras aprender algunas reglas básicas para trabajar con ActionBarCompat, probablemente necesitarás migrar algunas aplicaciones de ActionBarSherlock a ActionBarCompat, ya que proporciona mejor integración con algunas otras funcionalidades como el Navigation Drawer, y hay algunos puntos que necesitas conocer para hacer esta conversión más fácil. Reemplazaré la Action Bar de Bandhook mientras escribo el artículo, por lo que puede que haya algún punto que no cubra si no lo estoy usando. Coméntame cualquier duda en los comentarios y trataré de añadirla aquí.

< ActionBarCompat (Parte 2): Action Views

Importa el proyecto AppCompat

Como expliqué en un artículo anterior, se requiere un projecto de librería para usar ActionBarCompat. Gradle permite una fácil integración en Android Studio, pero imagino que la mayoría de nosotros continuamos usando Eclipse o IntelliJ, así que lo más fácil será importarlo como un proyecto o módulo. Recuerda que podrás encontrarlo en sdk\extras\android\support\v7\appcompat. Añade ambos jars contenidos en libs a tu proyecto.

Reemplaza SherlockFragmentActivity con ActionBarActivity

ActionBarActivity es la nueva actividad usada con ActionBarCompat, y permite el uso de fragments. Si tienes algún otro tipo de actividad de Sherlock, reemplázalo también. No debería haber ningún problema aunque no estés usando fragments.

Reemplaza SherlockFragment por Fragment

Usa los fragments de la support-v4 en vez de los de ActionBarSherlock.

Cambia las referencias a Menu, MenuItem y getSupportMenuInflater()

AppCompat usará los nativos. También tendrás que modificar la referencia al paquete de ActionBar. Modifica los XML de los menús tal como expliqué en el primer tutorial.

Modifica la forma en que recuperas las Action Views

Si leíste la segunda parte de la serie de tutoriales, expliqué que hay una nueva clase de compatibilidad para realizar esta tarea. No fallará en las nuevas versiones de Android si no lo cambias, pero las antiguas lanzarán un error.

mSearchView = (SearchView)MenuItemCompat.getActionView(mSearchItem)

Modifica tus temas y estilos

Haz que tu tema extienda de uno de los de AppCompat. Por ejemplo, puedes usar:Theme.AppCompat.Light.DarkActionBar. Reemplaza cada aparición de Sherlock en los estilos por AppCompat. También puedes usar Action Bar Style Generator, que ya está optimizado para funcionar con AppCompat.

¡Y esto es todo! Conseguí hacer funcionar ActionBarCompat más fácil de lo esperado. Jake Wharton hizo un gran trabajo, como explicaba en su propio blog, cuando creó su librería para ser fácilmente reemplazada.

ActionBarSherlock a ActionBarCompat3333

¿Te ha gustado? Compártelo

Un comentario

  1. me podrias decir como cambio el background del action bar estoy usando Theme.AppCompat.Light.DarkActionBar

Deja tus comentarios

¿Has probado ya Bandhook? Te presento mi nueva aplicación, en la que podrás consultar información de tus artistas favoritos y descubrir otros nuevos relacionados.

Bandhook - Discover new music