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 obtenir des liens hypertextes cliquables dans AlertDialog à partir d'une ressource de chaîne?
  • Comment attacher un bitmap lors du lancement de l'intention ACTION_SEND
  • Laravel Consumer and Provider App architecture
  • Comment puis-je écrire le caractère et dans android strings.xml
  • Comment supprimer un enregistrement de ORMLITE?
  • Lire tous les SMS d'un expéditeur particulier
  • Multiline EditText avec Done SoftInput Action Label sur 2.3
  • Android Proguard ne supprime pas tous les messages de journal
  • Bibliothèque de conception Android CoordinatorLayout, AppBarLayout et DrawerLayout
  • Android: comment sélectionner des textes à partir de la visionneuse web
  • Sonnerie moi-même en utilisant un émulateur Android
  • Erreur de correspondance API du pilote de périphérique
  • 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.