Personalizando guias sobre o estado no Android
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
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).