Domanda

Ho un vaso di vista per implementare scorri tra i frammenti "titoli".E dentro di loro ho bisogno di aggiungere più frammenti ai rispettivi contenitori.

Il problema è, sto usando FragmentTransaction.add(containerID, fragment);, ma poiché ci sono più frammenti del titolare nel viewpager, tutti i frammenti vengono aggiunti sullo stesso frammento del titolare, e non in quello che sta chiamando per aggiungerli.

Qualcuno ha un'idea in buona idea per aggirare questo problema?

Ecco il codice in cui aggiungo i frammenti all'interno del frammento del supporto.

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

È stato utile?

Soluzione

È necessario utilizzare il Bambino FragmentManager se si desidera aggiungere Fragments a un altro Fragment.L'utilizzo del normale FragmentManager non funzionerà come hai scoperto.

nel tuo Fragment:

FragmentManager manager = getChildFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
...
transaction.commit();
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top