No sé lo que hice pero durante un tiempo mi TabWidget tenía pestañas de color blanco que se veían muy bien. Nunca configuré un tema o color de fondo/primer plano en mi proyecto. La próxima vez que lo compilé volvió a las pestañas grises. Mi aplicación está usando el tema oscuro predeterminado. Incluso si configuro el tema de la aplicación a la luz, las pestañas siguen siendo grises. Entonces, obviamente, fue algo más que cambió el color de las pestañas. Alguien sabe cómo hacer esto?TabWidget color blanco en primer plano?
Respuesta
I estaba teniendo un problema debido a un error en el tema de luz de Android 1.6 (el texto del indicador de pestaña es blanco). Yo era capaz de anular el tema por defecto de la siguiente manera:
- he creado un tema personalizado que hereda del tema por defecto:
styles.xml
:
<style name="MyTheme" parent="@android:style/Theme.Light">
<item name="android:tabWidgetStyle">@style/LightTabWidget</item>
</style>
<style name="LightTabWidget" parent="@android:style/Widget.TabWidget">
<!-- set textColor to red, so you can verify that it applied. -->
<item name="android:textColor">#f00</item>
</style>
Entonces sólo aplico ese tema a mi aplicación agregando android:theme="@style/MyTheme"
al elemento <application />
de mi AndroidManifest.xml
.
gracias steve, me ayudó y tú me hiciste la vida –
Comprobar esta respuesta mía: Background in tab widget ignore scaling
También puede hacer referencia a la android.graphics.drawable
paquete
En su código, se puede establecer el fondo para sus pestañas como esto:
tabHost.getTabWidget().getChildAt(0).setBackgroundResource(
android.R.color.white);
Esto hace que el fondo de la pestaña sea negro sin importar qué. – Monstieur
en el public void onCreate(Bundle savedInstanceState)
`tabHost = getTabHost();
tabHost.setOnTabChangedListener(this);
tabHost.setCurrentTab(0);
setTabColor();`
que en el oyente:
public void onTabChanged (String tabid) { setTabColor();
finalmente la función, que establece el primer plano y el fondo también:
public void setTabColor() {
// set foreground color:
for (int i = 0; i < tabHost.getTabWidget().getChildCount(); i++) {
RelativeLayout rl = (RelativeLayout) tabHost.getTabWidget().getChildAt(i);
ImageView imageView = (ImageView) rl.getChildAt(0);// change it if you want it
TextView textView = (TextView) rl.getChildAt(1);//
textView.setTextColor(Color.parseColor("#FFFFFF"));
}
// set background color:
for (int i = 0; i < tabHost.getTabWidget().getChildCount(); i++) {
tabHost.getTabWidget().getChildAt(i).setBackgroundColor(Color.parseColor("#010101")); // unselected
}
tabHost.getTabWidget().getChildAt(tabHost.getCurrentTab()).setBackgroundColor(Color.parseColor("#121288")); // selected
}
En onCreated():
tabHost.setCurrentTab(0);
// Set tabs text color to white:
TabWidget tabWidget = tabHost.getTabWidget();
int whiteColor = getResources().getColor(R.color.white);
int someOtherColor = getResources().getColor(R.color.someOtherColor);
for(int i = 0; i < tabWidget.getChildCount(); i++){
View tabWidgetChild = tabWidget.getChildAt(i);
if(tabWidgetChild instanceof TextView){
((TextView) tabWidgetChild).setTextColor(whiteColor);
} else if(tabWidgetChild instanceof Button){
((Button) tabWidgetChild).setTextColor(whiteColor);
} else if(tabWidgetChild instanceof ViewGroup){
ViewGroup vg = (ViewGroup)tabWidgetChild;
for(int y = 0; y < vg.getChildCount(); y++){
View vgChild = vg.getChildAt(y);
if(vgChild instanceof TextView){
((TextView) vgChild).setTextColor(whiteColor);
}
}
vg.setBackgroundColor(someOtherColor);
}
}
- 1. Progressbar color de primer plano
- 2. Configuración del color de primer plano de TabItem también establece el color de primer plano de TabControl
- 3. Eclipse no aplica color de primer plano de selección
- 4. ¿Cómo configurar el botón SWT de color de primer plano?
- 5. Establecer color de primer plano para HSSFCellStyle siempre sale negro
- 6. Primer plano transparente
- 7. Buen color de primer plano de texto para un color de fondo dado
- 8. ¿Cómo cambiar el color de primer plano del texto resaltado para un WPF TextBox?
- 9. Cambiar el color de primer plano de un ContentPresenter en un cuadro de lista
- 10. Fondo de texto resaltado y primer plano - ¿Cómo cambiar?
- 11. Cómo crear una tarea en primer plano?
- 12. AppleScript para apuntar aplicación en primer plano
- 13. Java, ejecute otra aplicación en primer plano
- 14. Linux: ejecutar cron job en primer plano
- 15. ¿Cómo obtener un color blanco brillante en ncurses?
- 16. Dado un color de fondo, ¿cómo obtener un color de primer plano que lo haga legible en ese color de fondo?
- 17. cuentagotas de Photoshop establece el color de fondo, no en primer plano
- 18. estilo personalizado para TabWidget
- 19. TabWidget Altura
- 20. hilos primer plano vs subprocesos de fondo
- 21. Configuración del problema Primer plano con Visual State Manager
- 22. Detectar evento de primer plano de aplicación
- 23. Blanco no es blanco
- 24. Para identificar el proceso en segundo plano y ponerlo en primer plano en C++ WIN32
- 25. Notificación local en primer plano en iPhone SDK
- 26. Establecer un color de fondo plano para un widget QGraphicsView
- 27. ¿Hay un primer plano equivalente a background-image en css?
- 28. Activity.showDialog cuando la actividad puede no estar en primer plano
- 29. Uso de métodos de fondo/primer plano en AppDelegate
- 30. Vim: copia/elimina la línea del primer carácter en blanco al último carácter en blanco
¿Está quizá probando en dos versiones diferentes de la plataforma? El estilo de la pestaña cambió en 2.0. Además, si pudieras publicar una captura de pantalla, tomada con 'DDMS', sería de gran ayuda. –
Ah, sí. Fue a partir de la compilación de 1.6. ¿Hay alguna manera de configurar manualmente el mismo color para 2.0+? – Monstieur
Tuve este problema y determiné que era el atributo 'targetSdkVersion' en AndroidManifest.xml lo que causaba que cambiara. –