2012-05-22 7 views
1

J'ai une activité d'onglet personnalisée que j'ai créée avec l'aide de SO. Je rencontre cependant quelques problèmes, que je ne trouve pas de réponse ici. D'abord, tous les états des onglets proviennent des ressources de l'onglet apk Android dont j'ai ajusté les couleurs. L'image neuf-patch de l'onglet non sélectionné apparaît sous chaque onglet et je ne peux pas l'obtenir pour partir, des suggestions? Deuxièmement, quand je vais d'abord à l'activité de l'onglet, le texte de l'onglet focalisé ne change pas, mais quand j'appuie sur l'onglet, ou passer à un autre onglet et revenir, le texte change. Comment afficher le texte de mise au point initial lorsque le texte affiché s'affiche après une pression?Onglets: Vue inexpliquée derrière les onglets gonflés

Voici des images pour montrer ce que je veux dire; chargement initial à gauche, pression à droite, et les deux images montrent l'image de l'onglet non sélectionné montrant derrière les onglets:

J'ai essayé d'afficher des images de l'apparence des onglets, mais mon représentant n'est pas encore assez élevé. Pardon!

Voici la mise en page de l'onglet xml que je suis Gonflage:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="75dp" 
    android:layout_weight="1" 
    android:background="@drawable/custom_tab_selector" 
    android:orientation="vertical" > 

    <ImageView 
     android:id="@+id/ivTabIicon" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" /> 

    <TextView 
     android:id="@+id/tvTabTitle" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_centerHorizontal="true" /> 

</RelativeLayout> 

Voici mon sélecteur XML

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

    <!-- Active tab --> 
    <item 
     android:drawable="@drawable/tab_selected" 
     android:state_focused="false" 
     android:state_pressed="false" 
     android:state_selected="true"/> 

    <!-- Inactive tab --> 
    <item 
     android:drawable="@drawable/tab_unselected" 
     android:state_focused="false" 
     android:state_pressed="false" 
     android:state_selected="false"/> 

    <!-- Pressed tab --> 
    <item 
     android:drawable="@drawable/tab_press" 
     android:state_pressed="true"/> 

    <!-- Selected tab (using d-pad) --> 
    <item 
     android:drawable="@drawable/tab_focus" 
     android:state_focused="true" 
     android:state_pressed="false" 
     android:state_selected="true"/> 

</selector> 

Et voici mon activité partie java qui gonfle et affiche chaque onglet

// Initialize a TabSpec for each tab and add it to the TabHost 
// Team tab 
View tabTeamIndicator = LayoutInflater.from(this).inflate(R.layout.tab_team_layout, getTabWidget(), false); 
spec = tabHost.newTabSpec("teamTab"); 
title = (TextView) tabTeamIndicator.findViewById(R.id.tvTabTitle); 
title.setText("Team Manager"); 
icon = (ImageView) tabTeamIndicator.findViewById(R.id.ivTabIicon); 
icon.setImageResource(R.drawable.custom_teamtab_icon); 

spec.setIndicator(tabTeamIndicator); 
spec.setContent(intentTeam); 
tabHost.addTab(spec); 

Merci beaucoup d'avance pour toute aide! En passant, les couleurs semblent beaucoup mieux sur les téléphones que je les essaye que dans l'émulateur !!!

EDIT: Changement titre du fil

Répondre

2

idiot erreur ici. La mise en page XML qui détient le widget onglet avait le

android:background="@drawable/custom_tab_selector" 

attribut dans ce qui était à l'origine l'arrière-plan des onglets à tirer une seconde fois en arrière-plan.