Android.support.design.widget.TabLayout sélectionnez l'onglet Programmatically

J'utilise android.support.design.widget.TabLayout. Il a deux onglets, Si l'utilisateur sélectionne le deuxième onglet Sur une condition particulière, je souhaite que l'utilisateur redirige vers le premier onglet et l'interdise d'aller à l'onglet Sencond jusqu'à ce que les conditions correspondent. Pour ce faire, j'ai essayé,

tabLayout.getTabAt(0).select(); 

Mais il ne filtre pas le premier onglet

  • Comment puis-je changer la couleur de l'icône de l'onglet sélectionné de TabLayout?
  • TabLayout avec viewpager pas de défilement en douceur
  • Comment configurer l'icône à côté du texte dans la tabulation
  • Modification des icônes TabLayout à gauche, en haut, à droite ou en bas dans com.android.support:design:23.1.0
  • Aucune vue n'a été trouvée pour id 0x7f0e00d5 (com.example.page:id/dialogViewpager) pour fragment OneFragment {92c0220 # 1 id = 0x7f0e00d5 android: switcher: 2131624149: 0}
  • Désactiver TabLayout
  • TabLayout sans utiliser ViewPager
  • Changer la police de texte de l'onglet dans le support de conception Android TobLayout
  • 4 Solutions collect form web for “Android.support.design.widget.TabLayout sélectionnez l'onglet Programmatically”

    C'est parce que cette vue n'est toujours pas correctement initialisée et vous essayez d'effectuer des actions.

    En tant que solution, il suffit de mettre un hadler avant de sélectionner l'onglet Perticular .

     new Handler().postDelayed( new Runnable(){ @Override public void run() { tabLayout.getTabAt(yourTabIndex).select(); } }, 100); 

    C'est ainsi que je l'ai résolu:

    TabLayout.getTabAt (CurrentItem) .getCustomView (). SetSelected (true);

    Vous pouvez sélectionner l'onglet dans Fragment.onViewCreated ().

    C'est ma configuration. Ça marche bien pour moi.

      //declare your tabs to be add on TabLayout tlDailyView; private TabLayout.Tab tabAppointment, tabSlots; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_daily_view, container, false); initializeMembers(); setupTabLayout(); return view; } private void setupTabLayout() { tlDailyView.addTab(tabAppointment, 0, true); tlDailyView.addTab(tabSlots, 1, true); tlDailyView.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { @Override public void onTabSelected(TabLayout.Tab tab) { switch (tab.getPosition()) { case 0: //open fragment at position 0 here case 1: //open fragment at position 1 here break; } } @Override public void onTabUnselected(TabLayout.Tab tab) { } @Override public void onTabReselected(TabLayout.Tab tab) { } }); } private void initializeMembers() { tabSlots = tlDailyView.newTab(); tabAppointment = tlDailyView.newTab(); tabAppointment.setText(R.string.tab_appts).select(); tabSlots.setText(R.string.tab_slots); } 

    N'oubliez pas d'initialiser votre onglet ci-dessus.

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.