Iam travaillant sur une page où j'ai trois boutons fonctionnant comme des onglets, et en cliquant sur l'un d'eux le comportement devrait être que le FrameLayout (conteneur Fragment) ci-dessous devrait remplacer le fragment avec le prévu un.FragmentTransaction Remplacer seulement fonctionne une fois
dans onCreate de l'activité que j'ai cette méthode, de sorte que le récipient montre le premier fragment, (ceci fonctionne très bien):
ProductDetailInformacoesFragment infoFragment = new ProductDetailInformacoesFragment();
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.id.product_detail_fragment_container, infoFragment);
Alors j'ai une instruction switch qui est appelé sur les différents écouteurs pour les boutons, de sorte que le bon fragment est montré:
public void switchFragment(int fragmentPos)
{
switch (fragmentPos){
case 0:
ProductDetailInformacoesFragment infoFragment = new ProductDetailInformacoesFragment();
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.id.product_detail_fragment_container, infoFragment);
ft.commit();
break;
case 1:
ProductDetailCaracteristicasFragment caracteristicasFragment = new ProductDetailCaracteristicasFragment();
FragmentTransaction ftt = getSupportFragmentManager().beginTransaction();
ftt.replace(R.id.product_detail_fragment_container, caracteristicasFragment);
ftt.commit();
break;
case 2:
ProductDetailAvaliacoesFragment avaliacoesFragment = new ProductDetailAvaliacoesFragment();
FragmentTransaction fttt = getSupportFragmentManager().beginTransaction();
fttt.replace(R.id.product_detail_fragment_container, avaliacoesFragment);
fttt.commit();
break;
default:
break;
}
}
XML:
<FrameLayout
android:id="@+id/product_detail_fragment_container"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/base_view"
android:background="@android:color/white"/>
Le problème est lorsque je clique sur l'un des onglets, le conteneur de fragment devient blanc (blanc) et le fragment souhaité n'est pas montré, peu importe laquelle je clique (même celui qui est déjà montré). Que fais-je tort ?? - J'ai essayé de définir ft.addToBackStack (null) n'a pas aidé.