처음 탭레이아웃을 사용해보고 싶었을때 구글에 찾아보니 여러 방법이 있지만 저를 이해시키지 못했고 저는 여기에 몇 일을 사용을 해 이해를 했습니다... 그래서 제가 배울때의 마음으로 한번 적어보겠습니다.
시작할때 새로운 파트를 넣어보려고 합니다.
오늘의 한곡
𝐋𝐢𝐤𝐞 𝐌𝐲 𝐅𝐚𝐭𝐡𝐞𝐫 - Jax
우연히 들어본 노래인데 좋아서 계속 듣고 있습니다
위에 있는 탭레이아웃은 제가 만든 탭레이아웃이고 이거를 기준으로 설명을 드리도록 하겠습니다!
이거 때문에 많이 고생을 했습니다. 제가 생각 했던거는 메인과 고양이만 있으면 메인을 강아지로 만들고 붙이면 안될까?? 였는데 정답은 당연히 안됩니다. 둘이 루프를 돌다가 에러 뜨면서 꺼져서 메인은 두고 프래그먼트를 두개 만들어 사용을 해야합니다
저는 강아지/고양이를 원해서 두개의 프래그먼트를 만들었습니다.
레이아웃도 똑같이 두개 만들어주세요
val dogFragment = MainDogTypeFragment()
val catFragment = MainCatTypeFragment()
val fragments = arrayListOf<Fragment>(dogFragment, catFragment)
val tabAdapter = object : FragmentStateAdapter(this) {
override fun getItemCount(): Int {
return fragments.size
}
override fun createFragment(position: Int): Fragment {
return fragments[position]
}
}
binding.viewPager2.adapter = tabAdapter
TabLayoutMediator(binding.mainTypeTabLayout, binding.viewPager2) {tab,position ->
when (position) {
0 -> tab.setText(R.string.tabDogText)
else -> tab.setText(R.string.tabCatText)
}
}.attach()
각 프래그먼트를 지정해주고
fragments로 묶어서 어뎁터를 만듭니다.
저는 따로 파일을 만들기 싫어서 하나로 작업 했습니다.
뷰페이저가 있으시면 밑에 보이는 것처럼 뷰페이저 연결 해주시면 됩니다.
이렇게만 하시면 끝입니다!!!