Uso de ActionBarSherlock en Mono Android
Estoy tratando de implementar la ActionBar en una aplicación Mono Android. ¿Podría alguien darme pasos para incluir el proyecto ActionBar en mi solución? He visto la muestra proyectada proporcionada en esta url https://github.com/xamarin/monodroid-samples/tree/master/ActionBarSherlock
¿Tengo que añadir simplemente una referencia del proyecto ActionBarSherlock en esa muestra? Cuando intento agregar una referencia a ese proyecto consigo muchos errores tales como "Error que recupera padre para el artículo: Ningún recurso encontrado que coincida con el nombre dado 'android: TextAppearance.Holo.Widget.ActionBar.Menu'." En el archivo abs_styles.xml
- IntelliJ 12 + ActionBarSherlock setttings: No se pudo encontrar la clase 'android.support.v4.app.FragmentActivity'
- Personalizar ActionBar en Android usando ActionbarSherlock y jeremyfeinstein slidingmenu
- ActionBarSherlock + maven + eclipse: dependencia no encontrada en el espacio de trabajo
- ¿Es posible cambiar el indicador de pestaña de la barra de acciones programáticamente?
- Error: En <declare-styleable> SherlockSpinner, no se puede encontrar el atributo android: popupPromptView
¿Alguien más ha añadido ActionBarSherlock a un proyecto Android? ¿Podría darme pasos para obtener un ejemplo simple de trabajo?
- ActionBarSherlock: Mostrar / ocultar los botones de elemento de acción mediante una llamada de método de programación
- Inflar ActionBarSherlock Menú definido en XML
- Cómo deshabilitar el colapso de la vista de búsqueda en la tecla de nuevo presionado android
- Restaurar el diseño predeterminado de la barra de acciones
- Obfuscating ActionBarSherlock con Proguard
- ActionBarSherlock: java.lang.IllegalStateException en muy pocos dispositivos
- Android: Vista personalizada de un elemento de menú
- ¿Cómo prevenir los incendios onNavigationItemSelected cuando se inicia la actividad?
Ok, así es como lo conseguí trabajando …
-
Abra el proyecto de ejemplo y cree sólo el proyecto 'ActionBarSherlock' en el modo Release. Asegúrese de que la versión mínima de Android de destino es 4.0.3 (necesario)
-
Tome la dll y la referencia en su proyecto. He encontrado que usted puede conseguirlo compilar bien si su proyecto tiene una versión androide mínima de 2.2 – Encontré que si usted utilizó la versión 2.1 del perfil no trabaja, pero que apenas pudo haber sido mi app. Tal vez su versión mínima es demasiado baja? También establezco mi androide "objetivo" para ser el último … No sé si esto ayuda también.
-
La razón que digo para hacer referencia a la dll en lugar del proyecto es que obtendrá el intellisense correcto. De lo contrario, como se puede ver en el proyecto de ejemplo que no (hace que funciona en un dolor!).
-
Asegúrese de tener una referencia a la librería de soporte v4 en su proyecto (Mono.Android.Support.v4)
-
El paso final es que necesitas cambiar tu tema por defecto para usar un tema de Sherlock. (Ver xml abajo por ejemplo)
-
Utilice los espacios de nombres ActionbarSherlock. * Al agregar Actionbars etc …
Ejemplo de manifiesto después de agregar ActionbarSherlock:
<manifest ...> <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="16" /> <application android:label="IDNT" android:theme="@style/Theme.Sherlock.Light.DarkActionBar" android:icon="@drawable/Icon"> </application> </manifest>
CUIDADO: Hay un pequeño problema con todo esto … Si su proyecto tiene una versión mínima de 3.0 (es decir, 2.2 según mi ejemplo) y compila con enlaces (es decir, ensamblados de SDK solamente) obtendrá un error 'Mono. Cecil.ResolutionException: Error al resolver Android.Database.IDatabaseErrorHandler '. Actualmente estoy enviando mensajes de soporte sobre esto a Xamarin y editaré esta publicación una vez que trabaje una corrección.
EDIT: Para solucionar el problema que he mencionado anteriormente asegúrese de que las opciones de proyecto -> Aplicación -> mínimo de Android a la opción de destino es de al menos 4.0.3. Su minSdkVersion todavía puede ser 7/8 o lo que sea, por lo que todavía se ejecutará en las versiones más antiguas de Android. También significa que usted tiene que tener cuidado de no codificar en cosas que es para versiones superiores.