안드로이드 viewpager질문드립니다.

조회수 642회

뷰 페이저의 각 아이템에 보이는 프래그먼트가 동일한 레이아웃을 가지고 있다면 프래그먼트를 하나만 정의할 수도 있을까요? 어떻게 해야 될까요?

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • 반대로 ViewPager 의 각 page 들이 서로 다른 UI 를 갖더라도 충분히 하나의 Fragment 클래스만을 작성해서 구현할수도 있습니다.

    다만 그렇게하면 해당 클래스에서 page 별로 동작에 대한 분기처리가 필요하는등 비효율적인 방식이 되겠죠. 코드 라인도 굉장히 길어질 것이구요.

    일반적으로 page 마다 Fragment 클래스를 작성하려는 것은 그것 때문입니다. 각 page 가 서로 다른 역할과 UI 를 갖는다면 각각의 Fragment 클래스를 작성하면 효율적일 것입니다.

    결론적으로 질문하신 내용에 대해서는 충분히 구현 가능합니다.

    그러나 가능/불가능 여부 이전에 현재 구현하시려는 상황에 있어서 page 별로 Fragment 클래스를 작성할 것인지 하나의 Fragment 클래스만 작성할 것인지 생각을 먼저해보시는 쪽이 좋을것 같습니다.

    구체적인 방법으로는 TestFragment 라는 클래스가 하나의 있을때 PagerAdapter 의 getItem() 을 아래와 같이 구현하면 되겠습니다. 만약 page 마다 별도의 bundle data 가 필요할경우 setArguments() 를 적절히 사용해주시면 되구요.

    public Fragment getItem(int position){
        return new TestFragment();
    }
    
    • (•́ ✖ •̀)
      알 수 없는 사용자

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

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

(ಠ_ಠ)
(ಠ‿ಠ)