I'm trying to add tablayout in one of my fragments.
tablayout in mainActivity works well, but tablayout in fragment doesn't work.
Tab menu shows well, but nothing comes up in my viewPager.
I want to make like this. and it's my app
HomeDetailFragment.kt
class HomeDetailFragment : Fragment() {
lateinit var homeDetailRecyclerViewAdapter : HomeDetailRecyclerViewAdapter
private val myContext = FragmentActivity()
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_home_detail, container, false)
}
override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState)
configureTopNavigation()
}
private fun configureTopNavigation(){
vp_home_detail.adapter = HomeDetailPagerAdapter(myContext.supportFragmentManager, 5)
vp_home_detail.offscreenPageLimit = 5
tl_home_detail_bar.setupWithViewPager(vp_home_detail)
}
}
HomeDetailPagerAdapter.kt
class HomeDetailPagerAdapter (fm : FragmentManager, val fragmentCount : Int): FragmentStatePagerAdapter(fm){
private val fragmentTitleList = mutableListOf("전체", "요가","발레", "태권도", "헬스")
override fun getItem(position:Int): Fragment{
when(position){
0-> return HomeFragment()
1-> return WholeFragment()
2-> return YogaFragment()
3-> return BalletFragment()
4-> return TakFragment()
else -> return HomeFragment()
}
}
override fun getPageTitle(position: Int):CharSequence?{
return fragmentTitleList[position]
}
override fun getCount(): Int = fragmentCount
}
fragment_home_detail.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#f2f7ff"
tools:context=".ui.home.HomeDetailFragment">
<com.google.android.material.tabs.TabLayout
android:id="@+id/tl_home_detail_bar"
android:layout_width="match_parent"
android:layout_height="48dp"
android:background="#ffffff"
app:tabIndicatorColor="#2c77f1"
android:layout_alignParentTop="true"
android:theme="@style/HomeDetailTab"
android:elevation="5dp" />
<androidx.viewpager.widget.ViewPager
android:id="@+id/vp_home_detail"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/tl_home_detail_bar"/>
Use childFragmentManager
instead of myContext.supportFragmentManager
vp_home_detail.adapter = HomeDetailPagerAdapter(childFragmentManager, 5)