2017-06-02 4 views
0

J'ai un tablayout connecté à viewpager et tablayout est montré en utilisant un sélecteur drawable pour montrer des bulles/points comme indicateur de section de page.Android comment définir l'application: attribut tabBackground par programme?

<android.support.design.widget.TabLayout 
     android:id="@+id/progress_type_tab" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:layout_centerVertical="true" 
     app:tabBackground="@drawable/progress_assignment_tab_selector" 
     app:tabGravity="center" 
     app:tabIndicatorHeight="0dp" /> 

progress_assignment_tab_selector est étirable de sélection:

<?xml version="1.0" encoding="utf-8"?> 

<item android:drawable="@drawable/progress_content_selected_dot" 
    android:state_selected="true"/> 

<item android:drawable="@drawable/progress_default_dot"/> 

je voudrais changer dynamiquement le app:tabBackground au moment de l'exécution. Je ne trouve pas un moyen de placer le sélecteur drwable dynamiquement à l'onglet.

Toute aide est appréciée.! Merci d'avance.

Répondre

0

Essayez ceci -

tabLayout.setBackground(ContextCompat.getDrawable(this, R.drawable.your_drawable)); 

Essayez ceci pour changer la 1ère position -

tabLayout.getTabAt(0).setCustomView(R.drawable.your_layout); 
+0

Ceci définit pour fond tablayout entier. Ce dont j'ai besoin est de mettre en arrière-plan pour chaque onglet seul avec une liste de couches de drawables pour l'état sélectionné et non sélectionné. –

+0

J'aurais été OK avec la définition de tous les onglets en une seule fois, mais cela ne fonctionne pas pour les drawables statelist de disposition de tabulation. –