Pergunta

Eu tenho um aplicativo que as metas do quadro 1.5 e usa o tema padrão de luz. Ao usar um widget de guia com este tema, as imagens da guia são pouco visíveis, e as legendas da guia são bastante impossível discernir, com exceção da guia ativo no momento.

No tema escuro padrão dessas guias vêm através muito claramente, mas isso não é uma solução Eu ficaria muito feliz com ele. Existe uma simples configuração posso definir, que configura o widget guia para uma melhor visibilidade em temas leves, ou eu teria de mexer com imagens e estilos de texto manualmente?

Foi útil?

Solução

não é bonito, mas você pode tentar isso em sua atividade de guia.

// 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 deve ter

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

AndroidManiest.xml deve ter

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

Se você quiser fazer algo mais louco, tente http: // ezmobile.wordpress.com/2009/02/02/customized-android-tabs/

Outras dicas

Este é um erro; você pode denunciá-lo no o issue tracker ?

AFAIK, a sua solução de personalizar os sons de texto e imagem estilos direita.

É também digno de nota que o widget de guia no 2.0 não parece ter um estilo de luz.

Ao usar a ferramenta hierarchyviewer eu encontrei o id android para o textview na guia. A melhor maneira de mudar o (cor inclusive) as propriedades de texto é fazendo o seguinte ...

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);

Uma maneira muito simples para resolver o problema de cor / contraste no layout:

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

Isso define o fundo do TabWidget para preto e adiciona um pouco de preenchimento para que você tenha contraste com as abas contra o fundo preto. Não é perfeito, mas funciona em 1.5, 2.2, luz e escuridão tema.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top