È ansible modificare l’indicatore della scheda della barra delle azioni a livello di codice

Come posso cambiare a livello di programmazione l’indicatore di tabulazione selezionato della mia barra delle azioni? ho letto su stile di tabulazione e metodo Tab.setCustomView (), ma nessuno di questi aiuta:

   

Qualcuno può dirmi dove sbaglio? C’è un altro modo per farlo ? Grazie

Sono riuscito a implementare ciò che volevo usando la risposta di @ Padma per generare gli sfondi dell’indicatore di tabulazione: avevo bisogno di 5 selettori: verde, giallo, blu, arancione e rosso. Così ho creato 5 xml drawables ( tabs_selector_red.xml, tabs_selector_blue.xml, etc... ):

tabs_selector_green.xml:

               

Ho anche creato un layer-list per ogni sfondo xml: layer_bg_selected_tabs_green.xml

            

E infine, in Java , cambio lo sfondo in modo dinamico acquistando utilizzando la custom view e l’ index custom view della scheda selezionata:

 private static final int[] TABS_BACKGROUND = { R.drawable.tabs_selector_orange, R.drawable.tabs_selector_green, R.drawable.tabs_selector_red, R.drawable.tabs_selector_blue, R.drawable.tabs_selector_yellow }; /* BLA BLA BLA */ @Override public void onTabSelected(Tab tab, FragmentTransaction ft) { // TODO Auto-generated method stub RelativeLayout tabLayout = (RelativeLayout) tab.getCustomView(); tabLayout.setBackgroundResource(TABS_BACKGROUND[tab.getPosition()]); tab.setCustomView(tabLayout); /* ... */ } 

Ora aggiungiamo alcuni screenshot:

verdeblurosso

// la tua barra delle tabs dovrebbe essere

    

// il tuo tabs_selector.xml dovrebbe questo

              

// il tuo layer_bg_unselected_tabs dovrebbe essere come questo

            

// il tuo layer_bg_selected_tabs dovrebbe essere come questo