setOnTabSelectedListener est obsolète

Je vois toujours une ligne barrée setOnTabSelectedListener pour le code suivant

viewPager.setAdapter(adapter); viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout)); tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { @Override public void onTabSelected(TabLayout.Tab tab) { viewPager.setCurrentItem(tab.getPosition()); } } 

Et l’erreur affichée est la suivante:

setOnTabSelectedListener est obsolète

Cependant, le programme semble fonctionner correctement. Puis-je savoir ce qui se passe?

Puis-je savoir ce qui se passe?

Déconseillé signifie qu’ils ont décidé que ce n’est pas un bon moyen de le faire ou qu’ils ont trouvé une meilleure façon de le faire, et cette méthode obsolète sera supprimée à l’avenir.

La solution consiste à utiliser addOnTabSelectedListener au lieu de setOnTabSelectedListener .
Cela fonctionne presque de la même manière.

La différence est que avec addOnTabSelectedListener :

  • vous pouvez append plusieurs écouteurs. Avec setOnTabSelectedListener vous ne pouvez en avoir qu’un.
  • Vous devez supprimer le programme d’écoute lorsque vous en avez terminé avec removeOnTabSelectedListener .

Règle générale: n’utilisez jamais de méthodes obsolètes.

Comme setOnTabSelectedListener est maintenant obsolète, vous pouvez utiliser la nouvelle méthode

 addOnTabSelectedListener(OnTabSelectedListener) 

Ce changement permet d’append plusieurs écouteurs de sélection de tabulation à un seul TabLayout .

Utilisez les codes ci-dessous à la place:

 tablayout.addOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(viewPager)); viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tablayout)); 

Et si vous souhaitez les synchroniser lorsque vous cliquez sur les tabs ou que vous balayez le visualiseur, les codes ci-dessus sont la clé de la synchronisation.