Pregunta

Tengo una aplicación que se dirige el marco 1.5 y utiliza el tema de la luz por defecto. Cuando se utiliza un widget pestaña con este tema, las imágenes de la ficha son apenas visibles, y las leyendas de la ficha son bastante imposible discernir, a excepción de la pestaña activa en ese momento.

En el tema oscuro por defecto estas pestañas vienen a través de toda claridad, pero esto no es una solución estaría muy feliz. ¿Hay un ajuste sencillo que pueda establecer, que pone en marcha el widget pestaña para una mejor visibilidad en temas de luz, o tendría que manipular imágenes y estilos de texto de forma manual?

¿Fue útil?

Solución

No es bonito, pero se puede probar esto en su actividad pestaña.

// light theme support
final TabHost tabHost = getTabHost();
tabHost.setBackgroundColor(Color.WHITE);
tabHost.getTabWidget().setBackgroundColor(Color.BLACK);

// hack to set font size
LinearLayout ll = (LinearLayout) tabHost.getChildAt(0);
TabWidget tw = (TabWidget) ll.getChildAt(0);

// first tab
RelativeLayout rllf = (RelativeLayout) tw.getChildAt(0);
lf = (TextView) rllf.getChildAt(1);
lf.setTextSize(21);
lf.setPadding(0, 0, 0, 6);

// second tab
RelativeLayout rlrf = (RelativeLayout) tw.getChildAt(1);
rf = (TextView) rlrf.getChildAt(1);
rf.setTextSize(21);
rf.setPadding(0, 0, 0, 6);

/res/values/colors.xml debe tener

<resources>
    <drawable name="black">#ff000000</drawable>
    <drawable name="white">#ffffffff</drawable>
</resources>

AndroidManiest.xml debe tener

<application android:theme="@android:style/Theme.Light">

Si quieres hacer algo más loco, prueba a http: // ezmobile.wordpress.com/2009/02/02/customized-android-tabs/

Otros consejos

Esto es un error; se puede informar de ello en el rel="nofollow el seguimiento de incidencias ?

Que yo sepa, su solución de personalización de los estilos de texto e imágenes suena bien.

También es de destacar que el widget pestaña en 2.0 no parecen tener un estilo de luz.

Mediante el uso de la herramienta hierarchyviewer me encontré con el id androide para el TextView en la pestaña. Una mejor manera de cambiar el (incluyendo el color) las propiedades del texto es de la siguiente manera ...

TabWidget tw = (TabWidget)tabHost.findViewById(android.R.id.tabs);
View tabView = tw.getChildTabViewAt(0);
TextView tv = (TextView)tabView.findViewById(android.R.id.title);
tv.setTextSize(20);

Una forma muy sencilla de resolver el problema de color / contraste en el diseño:

<TabWidget
   android:id="@android:id/tabs"
   android:background="#FF000000"
   android:padding="2dp"

Esto establece el fondo de la TabWidget a negro y añade un poco de relleno para que tenga contraste con las lengüetas contra el fondo negro. No es perfecto, pero funciona en 1.5, 2.2, la luz y el tema oscuro.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top