/ / como substituir fragmentos na guia? - android, android-fragmentos, android-tabhost, android-tablayout

como substituir fragmentos na guia? - android, android-fragmentos, android-tabhost, android-tablayout

Eu tenho uma atividade com 2 guias. O que estou tentando fazer é substituir entre 2 fragmentos quando cada guia é pressionada. Eu também tenho 2 fragmentos: fragmentOne e fragmentTwo.When guia um é pressionado eu quero mostrar fragmentOne e quando a guia dois é pressionado eu quero mostrar fragmentTwo. Não tenho certeza se devo criar um layout de contêiner na atividade e adicionar o fragmentOne e fragmentTwo, ou talvez haja outra outra maneira de fazer isso?

aqui está meu código

    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) {

}
});
}

Quando o caso é 0, quero mostrar fragmentOne

quando o caso i 1 eu quero mostrar fragmentTwo

Como devo fazer isso?

Respostas:

1 para resposta № 1

Você pode fazer o seguinte:

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();
}

Aqui está um tutorial Para maiores informações


0 para resposta № 2

Use um ViewPager em vez de.

Defina um adaptador no pager da vista e use-o com um TabLayout usando

tabLayout.setupWithViewPager(viewPager);