¿Cómo cambiar el color del texto y el tamaño de un menú emergente en Android?
Pregunta
El color de texto en el menú emergente no cambia incluso cambiado en estilos. El color de fondo está cambiando con respecto al color en Styles.xml, pero el color del texto y el tamaño del texto no se reflejan.
//Creating the instance of PopupMenu
PopupMenu popup = new PopupMenu(mContext, holder.im_overflow);
//Inflating the Popup using xml file
popup.getMenuInflater().inflate(R.menu.list_overflow_menu, popup.getMenu());
//registering popup with OnMenuItemClickListener
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
if( item.getTitle().equals("Edit")){
callEdit();
} else if( item.getTitle().equals("Export")) {
callShare();
} else if( item.getTitle().equals("Delete")) {
callDelete();
}
return true;
}
});
popup.show();
styles.xml
<style name="AppBaseTheme" parent="@android:style/Theme.Light.NoTitleBar">
</style>
<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
<item name="android:popupMenuStyle">@style/PopupMenu</item>
</style>
<style name="PopupMenu" parent="@android:style/Widget.PopupMenu">
<item name="android:popupBackground">@android:color/white</item>
<item name="android:textColor">#FF01F0</item>
<item name="android:textSize">12sp</item>
</style>
pero no está cambiando el color del texto.
Solución
Puede cambiar el tamaño del texto y el color agregando este código a styles.xml y utilícelo en el archivo manifiesto.Para mi funcionó.
<style name="AppTheme" parent="AppBaseTheme">
<item name="android:popupMenuStyle">@style/PopupMenu</item>
<item name="android:textAppearanceLargePopupMenu">@style/myPopupMenuTextAppearanceLarge</item>
<item name="android:textAppearanceSmallPopupMenu">@style/myPopupMenuTextAppearanceSmall</item>
</style>
<style name="PopupMenu" parent="@android:style/Widget.PopupMenu">
<item name="android:popupBackground">@android:color/white</item>
<item name="android:textColor">#FF01F0</item>
<item name="android:textSize">12sp</item>
</style>
<style name="myPopupMenuTextAppearanceSmall" parent="@android:style/TextAppearance.DeviceDefault.Widget.PopupMenu.Small">
<item name="android:textColor">#545656</item>
<item name="android:textSize">15sp</item>
</style>
<style name="myPopupMenuTextAppearanceLarge" parent="@android:style/TextAppearance.DeviceDefault.Widget.PopupMenu.Large">
<item name="android:textColor">#545656</item>
<item name="android:textSize">25sp</item>
</style>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow