2012-07-30 13 views
5

El estilo es un lugar para mejorar en mi conocimiento de la plataforma de Android. Dado que estoy tratando de hacer un cambio simple toda la mañana y no he podido lograrlo.ActionSherlockBar Styling - PopupMenu

Quiero cambiar el estilo del menú de desbordamiento en la barra de acciones. Pude cambiar el color de fondo y agregar animaciones para que al hacer clic se desvanezca a un color seleccionado. Pero por mi vida no puedo cambiar el color del texto.

A continuación se muestran dos capturas de pantalla, una con Theme.Sherlock y otra con Theme.Sherlock.Light.

Theme.Sherlock - Esta es mi configuración actual que he personalizado. Lo que quiero es que el desbordamiento (también conocido como android: popupmenu) esté en el tema holo (como se muestra a continuación), e idealmente para poder cambiar el color del texto.

Theme.Sherlock

Theme.Sherlock.Light - Este tema muestra el estilo de menú de desbordamiento que yo quiero ver. Sin embargo, como se resalta en rojo, el botón de desbordamiento es del color incorrecto, y este tema también dibuja una línea horizontal.

Theme.Sherlock.Light

No sé si es mejor/más fácil cambiar Theme.Sherlock con el tema emergente o Theme.Sherlock.Light con el icono de desbordamiento y la emisión de línea. La aplicación es de un tema "Ligero" así que la opción dos es probablemente la mejor opción a largo plazo, sin embargo, aceptaré una respuesta que pueda resolver el problema cambiando cualquiera de los temas.

p.s. ¿Dónde encuentra una lista de atributos para cambiar tema/estilos, autocompletar es muy incompleto en eclipse?

actualización

Esto es en realidad una actualización para barras de acción nativos como im nuevo al mismo problema, pero ya no apoyar a 2.3 o menos.

<style name="AppTheme" parent="android:Theme.Holo.Light"> 
    <item name="android:actionOverflowButtonStyle">@style/OverFlow</item> 
</style> 

<style name="OverFlow" parent="@android:style/Widget.Holo.ActionButton.Overflow"> 
    <item name="android:src">**Insert your icon here**</item> 
</style> 

Respuesta

3

Esta respuesta es probablemente llegando demasiado tarde, pero a los que puede tropezar a través de esta pregunta. Me parece interesante que haya podido cambiar el color de fondo del desbordamiento. Encontré eso extremadamente difícil de descifrar, mientras que cambiar el texto fue bastante directo. Simplemente anule el valor android:itemTextAppearance en su tema personalizado.

<item name="android:itemTextAppearance">@style/your_new_text_appearance</item> 

<style name="your_new_text_appearance"> 
    <item name="android:textColor">@color/red</item> 
</style> 
+0

Nunca encontramos una solución. Pero desde entonces me he mudado a una compañía diferente. Presentaré tu respuesta la próxima vez que vea a los otros desarrolladores. – JonWillis

+1

oh, Dios mío, no puedo decir lo suficiente. Dos días probando docenas de formas de cambiar ese color, y finalmente una solución. – Draiken

2

no estoy familiarizado con ActionBarSherlock, pero se pueden encontrar los iconos rebosadero estándar en su disco duro en la carpeta

path\to\android\android-sdk\platforms\android-api-level\data\res\drawable-resolution 

y ellos son llamados ic_menu_moreoverflow_normal_holo_dark.png y ic_menu_moreoverflow_normal_holo_light.png

Alternativamente puede encontrarlos en línea here.

Creo que el círculo izquierdo también es dibujable. Mira dentro del res\drawable.

+0

Hola, gracias por la sugerencia. Dado que un tema puede hacer esto posible, preferiría hacer eso, que agregar otra imagen dibujable al proyecto. Todavía estoy tratando de averiguar cómo hacerlo – JonWillis

+0

Respondiendo a esto 2 años después y de vuelta en Android, estoy de vuelta a lo mismo en las barras de acción nativas. Tu lugar con los íconos, pero ahora entiendo el estilo un poco más. Solo agregue a su estilo lo que agregué a la pregunta. – JonWillis

2

simple haga lo siguiente:

. En el theme.xml en su estilo del tema de la aplicación Agregar este artículo:

<item name="popupMenuStyle">@style/PopupMenu</item> 

. En styles.xml añadir este nuevo estilo:

<style name="PopupMenu" parent="@style/Widget.Sherlock.Light.ListPopupWindow"> 
    <item name="android:textSize">14sp</item> 
</style> 

en el estilo que puede anular el tamaño del texto o de otros parámetros como desee.