Pergunta

Eu tenho um ViewPager para implementar deslize entre a "titular" Fragmentos.E, dentro delas, eu preciso adicionar vários Fragmentos para seus respectivos recipientes.

O problema é que estou usando FragmentTransaction.add(containerID, fragment);, mas , uma vez que existem vários titular de Fragmentos de ViewPager, todos os Fragmentos são adicionados no mesmo titular Fragmento, e não no que é chamado para adicioná-los.

Alguém tem uma ideia do que é uma boa prática para contornar esse problema?

Aqui está o código onde eu adicionar os Fragmentos dentro do titular do fragmento.

arrayFragments = new ArrayList<DiaAgendaFragment>();
DiaAgendaFragment objFragment;
FragmentManager fm = getFragmentManager();
FragmentTransaction transaction = fm.beginTransaction();

//this will be set accordingly later for each fragment
Time dataFragment = new Time();
dataFragment.setToNow();

//instantiate and set fragments
for (int i = 0; i < 5; i++) {

    objFragment = DiaAgendaFragment.newInstance(5, dataFragment);
    arrayFragments.add(objFragment);
    //pega a View pelo nome e adiciona o fragment
    transaction.add(getActivity().getResources().getIdentifier("agenda5d_activity_fragment"+i, "id", getActivity().getPackageName()), arrayFragments.get(i));
    //codigo de teste
    dataFragment.monthDay += 1;
}
transaction.commit();
Foi útil?

Solução

Você tem que usar a criança FragmentManager se você deseja adicionar Fragments para outro Fragment.Utilizando o normal FragmentManager não irá funcionar como você descobriu a si mesmo.

Em seu Fragment:

FragmentManager manager = getChildFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
...
transaction.commit();
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top