una sincronizar sincronización sincronizacion marcadores google frase establecer dispositivos cómo contraseña configuracion con chrome cambiar avanzada android android-actionbar actionbarsherlock

android - sincronizar - ¿Cómo gestionar el ancho de las pestañas de navegación de la barra de acción?



sincronizar gmail con chrome (3)

¿Parece que solo estás usando el tema para el modo Android pre 4.0 de ActionBarSherlock?

De http://actionbarsherlock.com/theming.html :

Atributos reflejados

Debido a las limitaciones en el sistema de temática de Android, cualquier personalización del tema debe ser declarada en dos atributos. Los atributos normales con prefijo de Android aplican el tema a la barra de acción nativa y los atributos sin prefijo son para la implementación personalizada. Ya que ambas API de temática son exactamente iguales, solo necesita hacer referencia a sus personalizaciones dos veces en lugar de tener que implementarlas dos veces.

La forma más fácil de transmitir exactamente lo que esto implica es con un ejemplo. El siguiente es el tema completo del ejemplo de "Estilo" mencionado anteriormente:

<style name="Theme.Styled" parent="Theme.Sherlock.Light.DarkActionBar"> <item name="actionBarStyle">@style/Widget.Styled.ActionBar</item> <item name="android:actionBarStyle">@style/Widget.Styled.ActionBar</item> </style> <style name="Widget.Styled.ActionBar" parent="Widget.Sherlock.Light.ActionBar.Solid.Inverse"> <item name="background">@drawable/bg_striped</item> <item name="android:background">@drawable/bg_striped</item> <item name="backgroundSplit">@drawable/bg_striped_split</item> <item name="android:backgroundSplit">@drawable/bg_striped_split</item> </style>

Estoy usando ActionBarSherlock y tengo una ActionBar con pestañas de navegación en ella. Quiero que las pestañas se ajusten automáticamente en función del tamaño del texto que contienen, pero parece que hay un estilo o una configuración que las obliga a usar un tamaño mínimo. Así, por ejemplo, en la captura de pantalla, la pestaña "Pestaña muy larga" no tiene relleno (de acuerdo con el estilo que apliqué) pero las pestañas marcadas con "T" tienen mucho relleno, a pesar de que configuro el relleno a 0dp.

Como puede ver a continuación, he intentado un enfoque de fuerza bruta estableciendo varios atributos en varios estilos, pero aún no lo he logrado.

¿Cómo controlo el relleno / ancho en las pestañas de la barra de acción?

<style name="CustomActivity" parent="@style/Theme.Sherlock" > <item name="actionBarTabStyle">@style/customActionBarTabStyle</item> <item name="actionBarTabBarStyle">@style/customActionBarTabBarStyle</item> <item name="actionBarTabTextStyle">@style/customActionBarTabTextStyle</item> </style> <style name="customActionBarTabStyle" parent="style/Widget.Sherlock.ActionBar.TabView"> <item name="android:background">@drawable/tab_indicator</item> <item name="android:paddingLeft">0dp</item> <item name="android:paddingRight">0dp</item> <item name="android:layout_width">wrap_content</item> <item name="android:minWidth">0dp</item> </style> <style name="customActionBarTabBarStyle" parent="style/Widget.Sherlock.ActionBar.TabBar"> <item name="android:paddingLeft">0dp</item> <item name="android:paddingRight">0dp</item> <item name="android:layout_width">wrap_content</item> <item name="android:minWidth">0dp</item> </style> <style name="customActionBarTabTextStyle" parent="style/Widget.Sherlock.ActionBar.TabText"> <item name="android:paddingLeft">0dp</item> <item name="android:paddingRight">0dp</item> <item name="android:layout_width">wrap_content</item> <item name="android:minWidth">0dp</item> </style>


Desde esa captura de pantalla, parece que estás probando en ICS, lo cual es bueno, ya que observarás el comportamiento de la barra de acción nativa en lugar de pensar que es un error de ActionBarSherlock.

Básicamente, la barra de acción intentará expandir las pestañas para ocupar una cantidad igual de espacio si hay suficiente espacio para hacerlo a fin de proporcionar una apariencia más limpia cuando solo hay unas pocas pestañas.

Al poner a cero el relleno actionBarTabTextStyle en realidad está empeorando el problema, ya que ahora el texto en la primera pestaña no tiene nada alrededor para evitar que toque los separadores y el borde de la pantalla. Si aumenta el relleno (o lo devuelve a su valor predeterminado) debería ver una de estas dos cosas:

  1. El texto se ajustará a dos líneas.
  2. La barra de pestañas convertirá las pestañas para que sean tan amplias como su contenido y permita el desplazamiento horizontal.

Me inclino a pensar que lo primero sucederá debido a los anchos muy delgados de la segunda a la cuarta pestaña. Desafortunadamente, esta es la forma en que se comporta la barra de pestañas y tenemos que probar y adaptar su comportamiento en consecuencia.

Si es posible, intente crear etiquetas de pestañas que tengan un ancho más unificado que probablemente active el segundo estado mencionado anteriormente. Siga haciendo pruebas con ICS para asegurarse de que el comportamiento que está viendo es de la plataforma y luego, cuando se ejecuta en pre-ICS, debería obtener el mismo comportamiento de la biblioteca.


Reemplace esta clase en el proyecto ActionBarSherlock ./ActionbarSherlock/src/com/actionbarsherlock/internal/widget/ScrollingTabContainerView.java

@Override public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); Re-measure if we went beyond our maximum size. if (mParent.mMaxTabWidth > 0 && getMeasuredWidth() > mParent.mMaxTabWidth) { //do nothing , override by me for ActionBarTabs not rezize never } }

Código original de

@Override public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); // Re-measure if we went beyond our maximum size. if (mParent.mMaxTabWidth > 0 && getMeasuredWidth() > mParent.mMaxTabWidth) { super.onMeasure(MeasureSpec.makeMeasureSpec(mParent.mMaxTabWidth, MeasureSpec.EXACTLY), heightMeasureSpec); } }

Cuando se ejecuta, ese código en Android 2.3.3 funciona bien cuando mis pestañas no se rompen, pero en Android 4.4 no funciona.