fragment 안에 viewpager 사용

조회수 1209회

현재 메인 화면에서 하단 tab 3가지로 fragment 1,2,3 화면 전환되도록 구성하였습니다. 그 중에서 fragment 1 으로 화면 전환시에 viewpager 가 나타나서 fragment4,5 화면을 보여주도록 설정했습니다. 다만 fragment 1을 처음으로 실행했을때는 viewpager 가 잘 진행되다가 fragment2,3 으로 이동후에 다시 fragment 1으로 진입하였을때는 Viewpager 가 실행되지않습니다. 구글링해보니 childfragmentmanager 를 viewadapter에 설정해야 한다고해서 설정해보니 이제는 두번째 진입시에 앱이 튕기네요 어떤것이 문제인지 초보자가 질문올립니다!


import android.os.Build;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;

import androidx.annotation.RequiresApi;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentStatePagerAdapter;
import androidx.viewpager.widget.ViewPager;

import java.util.ArrayList;

public class Fragment1 extends Fragment {

    Button button;
    ViewPager pager;

    @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN_MR1)
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        ViewGroup rootView = (ViewGroup) inflater.inflate(R.layout.fragment1, container, false);

        ViewPager pager = rootView.findViewById(R.id.pager);
        pager.setOffscreenPageLimit(3);

        MyPagerAdapter adapter = new MyPagerAdapter(getChildFragmentManager());

        Fragment4 fragment4 = new Fragment4();
        adapter.addItem(fragment4);

        Fragment5 fragment5 = new Fragment5();
        adapter.addItem(fragment5);


        pager.setAdapter(adapter);

        return rootView;
    }


    class MyPagerAdapter extends FragmentStatePagerAdapter {
        ArrayList<Fragment> items = new ArrayList<Fragment>();

        public MyPagerAdapter(FragmentManager fm) {
            super(fm);
        }

        public void addItem(Fragment item) {
            items.add(item);
        }

        public Fragment getItem(int position) {
            return items.get(position);
        }

        public int getCount() {
            return items.size();
        }
    }
}
  • (•́ ✖ •̀)
    알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)