안드로이드 코틀린 뷰페이저의 탭 레이아웃에 아이콘이 하나만 안보여요

조회수 575회

프래그먼트 5개를 이용해서 뷰페이저를 만들었고, 이를 제어하는 탭 레이아웃도 넣었습니다. 각 내용에 맞는 아이콘을 삽입했는데, 첫 4개만 보이고 5번째는 안보이네요 이미지에 문제가 있나 했지만, 같은 이미지를 다른 위치에서 출력하면 출력이 되고, 다른 이미지를 5번째 위치에 넣으면 출력이 안됩니다.

뷰페이저 연결 코드는 다음과 같습니다.

//뷰페이저와 프래그먼트 연결
        val fragmentList = listOf(calender(), reviewedMovies(), recommendedMovies(), moviesToWatchLater(), settings())
        val adapter = FragmentAdapter(this)
        adapter.fragmentList = fragmentList
        viewPager.adapter = adapter

        // 탭 레이아웃과 연결 icon 출처: flacicon
        TabLayoutMediator(tabLayout, viewPager) {tab, position ->
            tabLayout.getTabAt(0)?.setIcon(R.drawable.calendaricon)
            tabLayout.getTabAt(1)?.setIcon(R.drawable.reviewicon)
            tabLayout.getTabAt(2)?.setIcon(R.drawable.recommendicon)
            tabLayout.getTabAt(3)?.setIcon(R.drawable.listicon)
            tabLayout.getTabAt(4)?.setIcon(R.drawable.settingsicon)
        }.attach()

어댑터는 다음과 같습니다.

//// 뷰페이저 어댑터
class FragmentAdapter(fragmentActivity: FragmentActivity) : FragmentStateAdapter(fragmentActivity) {
    var fragmentList = listOf<Fragment>()

    override fun getItemCount(): Int {
        return fragmentList.size
    }

    override fun createFragment(position: Int): Fragment {
        return fragmentList[position]
    }
}

진짜 별 쓸데없는짓 다해봤는데 이유를 모르겠습니다. 제발 알려주세요 ㅠㅠ

  • 탭 레이아웃에 4개의 아이콘이 전부 자리를 차지하나요 아니면 5개의 아이콘이 들어갈 자리는 있는데 마지막 아이콘은 안보이나요? 김은기 2021.2.4 13:17

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

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

(ಠ_ಠ)
(ಠ‿ಠ)