J'ai une activité avec 2 onglets. Ce que j'essaie de faire est de remplacer entre 2 fragments lorsque chaque onglet est pressé. J'ai aussi 2 fragments: fragmentOne et fragmentTwo.When on appuie sur on, je veux montrer fragmentOne et quand onglet deux est appuyé, je veux montrer fragmentTwo. Je ne sais pas si je devrais créer une présentation de conteneur dans l’activité et y ajouter fragmentOne et fragmentTwo, ou peut-être existe-t-il un autre moyen de le faire?
voici mon code
public class InboxActivity extends AppCompatActivity {
private TabLayout tabLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_inbox);
tabLayout = (TabLayout)findViewById(R.id.tabLayout);
tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
Fragment fragment;
int position = tab.getPosition();
//requests = position - 0
//invitations = position - 1
switch (position){
case 0:
break;
case 1:
break;
}
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
}
quand le cas est 0, je veux montrer fragmentOne
quand le cas je 1 je veux montrer fragmentTwo
Comment devrais-je faire ça?
Réponses:
1 pour la réponse № 1Vous pouvez le faire comme suit:
public void onTabSelected(TabLayout.Tab tab) {
Fragment fragment = null;
switch (tab.getPosition()) {
case 0:
fragment = new FirstFragment();
break;
case 1:
fragment = new SecondFragment();
break;
}
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.id.simpleFrameLayout, fragment);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
ft.commit();
}
Voici une Didacticiel pour plus d'informations
0 pour la réponse № 2
Utiliser un ViewPager
au lieu.
Définissez un adaptateur dans le pager de vue et utilisez-le avec un TabLayout
en utilisant
tabLayout.setupWithViewPager(viewPager);