Android (ActionBarSherlock) ¿Hay alguna manera de mantener la misma altura de ActionBar tanto en el retrato y el paisaje?
He estado trabajando con ActionBar y ActionBarSherlock durante los últimos días, y estoy teniendo algunos problemas al rellenar alguna información en ActionBar.
Cuando la aplicación se ejecuta en modo vertical, la ActionBar se ve bien y se pueden mostrar todos los datos, por ejemplo:
- Android: la vista previa de la cámara es lateral
- Phonegap / HTML5 y la pantalla de Android redimensionan el problema en rotación de paisaje a retrato
- Android VideoView no se reproduce Orientación de retrato
- Problemas para tomar fotos con Android (Cámara vertical | Retrato)
- Imagen captada androide para estar en retrato
Pero cuando cambio la aplicación para que se muestre en el paisaje, algunos de los datos se recortan:
Puede observar cómo se ha recortado tanto el icono de estado como el correo electrónico debido a la nueva altura de ActionBar.
En este caso, quiero mantener el mismo tamaño para el retrato y el paisaje para que la aplicación puede verse bien. No puedo reducir el tamaño de fuente del título de la barra de acción, ya que puede incluir otros iconos.
La forma en que estoy poniendo estos iconos en el título de la barra de acción y el subtítulo es mediante el uso de Html.fromHtml
¿Alguna idea para resolver este problema? ¡Estoy usando la biblioteca ActionBarSherlock!
- Zxing modo retrato de la cámara y el paisaje en Android
- Android: orientación de la vista previa de la cámara en modo vertical
- Android: screenOrientation = "sensorPortrait" no funciona en API +17
- Problema de orientación de Android
- Cómo habilitar sólo retratos y retratos en los teléfonos, "sensorPortrait" no funciona en los teléfonos?
- Evento del dispositivo Android onConfigurationChanged no controla la orientación
- Exploded retrato Salida HDMI en Android (Samsung Galaxy S III)
- ¿Cómo puedo especificar diferentes diseños para orientaciones de retrato y de paisaje?
Uno, probablemente no demasiado bonito enfoque, podría ser para anular los valores de altura por defecto para la ActionBar en dimens.xml
.
Por ejemplo, el valor predeterminado en retrato es:
<dimen name="abs__action_bar_default_height">48dip</dimen>
Y en el paisaje:
<dimen name="abs__action_bar_default_height">40dip</dimen>
Puede haber una manera más limpia de hacerlo, pero tengo que admitir que sé muy poco sobre los internos de ActionBarSherlock para eso.
Edit: Vamos a pensar en ello, esto probablemente no funcionará cuando el nativo ActionBar se está utilizando en ICS, ya que la altura, a continuación, resolver el valor de la plataforma en ?android:attr/actionBarSize
. Te recomiendo que esperes una mejor sugerencia, por ejemplo de Jake él mismo.
Segunda edición: Después de la respuesta de Jake parece que todo lo que necesitas hacer para que funcione con ActionBarSherlock en los dispositivos ICS y pre-ICS es añadir lo siguiente al tema de tu aplicación:
<item name="actionBarSize">@dimen/some_value</item> <item name="android:actionBarSize">@dimen/some_value</item>
A continuación, puede agregar los valores reales en los depósitos de recursos de retrato / tierra relevantes.
Tercera edición [gracias alvarolb ]: XML Ejemplo para el estilo:
<?xml version="1.0" encoding="utf-8"?> <resources> <style name="Theme.Styled" parent="Theme.Sherlock.Light.DarkActionBar"> <item name="actionBarSize">48dip</item> <item name="android:actionBarSize">48dip</item> </style> </resources>
Y en la actividad correspondiente, establezca este nuevo estilo
android:theme="@style/Theme.Styled"
¡y funciona!
- ¿Cómo crear una animación cambiante de color? (Androide)
- Cómo crear directorios y carpetas de archivos en el sistema de archivos de datos / datos / proyectos de Android