문제

"홀더" 조각 간 스와이프를 구현하는 ViewPager가 있습니다.그리고 그 안에는 해당 컨테이너에 여러 조각을 추가해야 합니다.

문제는 내가 사용하고 있다는 것이다. FragmentTransaction.add(containerID, fragment);, 그러나 ViewPager에는 여러 개의 홀더 조각이 있으므로 모든 조각은 추가를 호출하는 조각이 아닌 동일한 홀더 조각에 추가됩니다.

이 문제를 해결하기 위한 좋은 방법에 대한 아이디어가 있는 사람이 있나요?

다음은 홀더 프래그먼트 내부에 프래그먼트를 추가하는 코드입니다.

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();
도움이 되었습니까?

해결책

아이를 이용해야 해요 FragmentManager 추가하고 싶다면 Fragments 다른 사람에게 Fragment.일반 사용하기 FragmentManager 당신이 스스로 알아낸 대로 작동하지 않을 것입니다.

당신의 Fragment:

FragmentManager manager = getChildFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
...
transaction.commit();
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top