0

J'ai utilisé TabLayout et ViewPager dans mon application. Je veux changer le titre ActionBar chaque fois que je balaye la page. J'ai été capable de le faire jusqu'à un certain point. Le problème auquel je suis confronté est que sur le lancement de l'application, le titre qui est affiché sur la barre d'action est le titre de mon application. Quand je balaie et recule, le titre devient ce que j'ai assigné (le bon). Donc, supposons que le titre de mon application est «ABC». Au démarrage de l'application, le titre de la barre d'actions par défaut est indiqué par «ABC». Quand je balaye et retourne à tab1, le titre correct est montré. J'ai pensé que c'est probablement parce qu'au démarrage de l'application, aucun onglet n'est réellement 'sélectionné'. Par conséquent, le code ne fonctionne pas."sélection" par défaut d'un onglet particulier sur le lancement de l'application dans TabLayout

J'ai également utilisé la méthode setCurrentItem qui ne sert à rien dans ce cas car elle définit la page par défaut mais ne permet pas réellement de 'sélectionner' un onglet particulier.

est ici l'extrait de code i utilisé

viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { 
     public void onPageScrollStateChanged(int state) {} 
     public void onPageScrolled(int position, float positionOffset, int 
    positionOffsetPixels) {} 

     public void onPageSelected(int position) { 
      final String[] tabTitles={"Favorites", "Friends", "Nearby"}; 
      tabLayout.setNextFocusRightId(position); 
      setTitle(tabTitles[position]); 
     } 
    }); 

Répondre

0

Votre public void onPageSelected(int position) sera appelée sur la configuration. Vous devez définir votre vignette pour la sélection par défaut. Il suffit d'appeler votre méthode setTitile() après avoir défini l'écouteur ou même avant, avec le premier titre ou l'onglet par défaut du titre sélectionné.

Supposons que votre défaut (premier) le titre est « Favoris » Vous pouvez appeler simplement

setTitle("Favorites"); 

Comme première ou la dernière ligne de votre code ci-dessus.