2012-02-07 14 views
10

Realmente quiero hacer que esto funcione, pero siento que he estado forcejeando durante horas. Estoy comenzando una nueva aplicación y quiero tratar de seguir las pautas de la interfaz de usuario lo más cerca posible, que para cualquier cosa debajo del sándwich de helado parece significar que necesito usar ActionBarSherlock. Mirando el ejemplo here parece que debería ser sencillo.Problemas implementando pestañas en ActionBarSherlock 4

Intento implementarlo y no funciona porque FragmentActivity no tiene un método getSupportActionBar().

Echando un vistazo a demo app y parece que no usan FragmentActivity, usan SherlockActivity. Bueno, SherlockActivity tiene un método getSupportActionBar(), así que eso es prometedor. Continuando con el ejemplo por un tiempo ...

Bien, ahora parece que el com.actionbarsherlock.app.ActionBar.TabListener no pasa FragmentTransaction a sus eventos? No solo eso, sino que el SherlockActivity no tiene un método getSupportFragmentManager() ...

¿Estoy (con suerte) haciendo algo completamente mal? ¿Cómo sigo encontrando todos estos problemas que nadie más es? Siento que me estoy volviendo loco aquí. El único problema potencialmente relacionado que he encontrado es here y no es muy útil.

+0

¿Está utilizando la biblioteca de soporte para admitir fragmentos? ¿O está apuntando a Honeycomb y más arriba? – Kekoa

+0

La biblioteca de soporte. Creo que el plan es API 7 y superior. – zeonic

Respuesta

27

Debe extender desde SherlockFragmentActivity en lugar de solo SherlockActivity o SherlockFragment. De esta forma, tendrá acceso a ABS y al Fragment Support.

+2

En mi opinión, esta es la respuesta correcta. Al menos esto funcionó para mí. ¡No es necesario usar ninguna biblioteca adicional como propone SimonVT! – Dude

1

Me encontré con un problema similar tratando de obtener una vista de mapa y fragmentos para trabajar con actionbarsherlock. Ver my post en la lista de correo.

La solución que se me ocurrió fue obtener las fuentes para la biblioteca de compatibilidad y modificar el FragmentActivity para ampliar un SherlockActivity en lugar de una actividad estándar de Android.

Luego tendrá que compilar las fuentes para la biblioteca de soporte junto con su aplicación (de alguna manera).

En mi caso di un paso adicional para modificar la actividad de Sherlock para extender MapActivity, pero como no mencionó los mapas, no tendría que hacer eso.

Puede haber otras soluciones, pero esto al menos hizo que las cosas funcionen para mí.

Recomendaría el mailing list ya que este proyecto parece estar cambiando con frecuencia.

+1

Esto realmente no funcionará completamente porque la implementación del menú en 'FragmentActivity' sobreescribirá lo que está en' SherlockActivity'. Sin embargo, existe una .jar creada específicamente para el soporte con una implementación de ABS adecuada para esta situación. –

Cuestiones relacionadas