Pergunta

Eu sei como colocar o ícone em cada guia, isso não é problema. Eu também encontrei o seguinte: [Freque de estacas de pilha na mesma coisa] [1

Eu segui um dos links dessa pergunta e encontrei [este] [2

Parte de usar um seletor definido no XML, com certeza, fez isso. Mas não há ID associado a ele, portanto, não tenho certeza de como fazer com que a função seletor seja um desenhado para que eu possa usá -lo como o ícone para as guias. Talvez eu esteja fazendo isso da maneira errada. Mas é isso que eu tenho, e obviamente perdendo alguma coisa.

<selector
    android:id="@+id/myselector"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- Non focused states -->
    <item
        android:state_focused="false"
        android:state_selected="false"
        android:state_pressed="false"
        android:drawable="@drawable/darklogo" />
    <item
        android:state_focused="false"
        android:state_selected="true"
        android:state_pressed="false"
        android:drawable="@drawable/lightlogo" />

    <!-- Focused states -->
    <item
        android:state_focused="true"
        android:state_selected="false"
        android:state_pressed="false"
        android:drawable="@drawable/lightlogo" />
    <item
        android:state_focused="true"
        android:state_selected="true"
        android:state_pressed="false"
        android:drawable="@drawable/lightlogo" />

    <!-- Pressed -->
    <item
        android:state_pressed="true"
        android:drawable="@drawable/lightlogo" />
</selector>

No meu código, um exemplo de guia é gerado usando:

  host.addTab(host.newTabSpec("three")  
                .setIndicator("map",drawables)  
                .setContent(new Intent(this, Map.class))); 

No momento, o desenhado é apenas uma referência a um recurso de imagem desenhado. Como faço para tornar o seletor um desenhado?

Esta é a minha pergunta [1]: Atualizando ícones do Android Tab [2]: http://groups.google.com/group/android-evelopers/browse_thread/thread/ef3bdebcb715b385

Foi útil?

Solução

O XML que você incluiu aqui é uma maneira de definir um desenhado que permite incorporar uma instrução de caso. Apresenta um desenhado diferente, dependendo do estado da visão para a qual está sendo atribuído. Como desenhado, você deve salvá -lo como um arquivo XML dentro do res/drawable pasta do seu projeto (por exemplo tabselector.xml).

Para usá -lo para o tabhost, você precisa construir a tabactividade como normalmente faria (como mostrado neste Exemplo de tutorial).

Então, quando você adiciona cada guia ao host, você especifica o tabselector desenhado como o indicador, como mostrado para "TAB 1" abaixo.

Drawable mySelector = getResources().getDrawable(R.drawable.tabselector);

mTabHost.addTab(mTabHost.newTabSpec("tab_test1").setIndicator("TAB 1", mySelector).setContent(R.id.textview1));
mTabHost.addTab(mTabHost.newTabSpec("tab_test2").setIndicator("TAB 2").setContent(R.id.textview2));

Nota: você não podes Altere a cor dos fundos da guia por trás dos ícones neste momento.

Outras dicas

Você pode usar uma visualização como um indicador, dessa maneira, pode personalizá -la da maneira que deseja.

mTabHost.addTab(mTabHost.newTabSpec("tab_test1").setIndicator(View MyView).setContent(R.id.textview1));
mTabHost.addTab(mTabHost.newTabSpec("tab_test2").setIndicator("TAB 2").setContent(R.id.textview2));

A primeira guia usará uma visualização como indicador e o segundo em uma charquence. Dê uma olhada na classe Tabspec real (http://developer.android.com/reference/android/widget/tabhost.tabspec.html).

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