/ / comment remplacer les fragments sur l'onglet? - android, android-fragments, android-tabhost, android-tablayout

comment remplacer les fragments sur l'onglet? - android, android-fragments, android-tabhost, android-tablayout

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 № 1

Vous 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);