Adapter
class HomePagerAdapter(val fragment: HomeFragment) : FragmentStateAdapter(fragment){
/**
* 创建fragment,可以在此处将数据传送给HomePageFragment
*
*/
override fun createFragment(position: Int): Fragment {
val data = categoryList[position]
return HomePageFragment.newInstance(data)
}
}
Fragment
companion object{
private const val CATEGORY_TITLE_KEY = "category_title"
private const val CATEGORY_ID_KEY = "category_id"
fun newInstance(data: MainCategoryItem.Data?): HomePageFragment{
val bundle = Bundle()
bundle.putString(CATEGORY_TITLE_KEY, data!!.title)
bundle.putInt(CATEGORY_ID_KEY, data.id)
val fragment = HomePageFragment()
// fragment.arguments: 向fragment传参数
fragment.arguments = bundle
return fragment
}
}
在Fragment中使用
val title = arguments.getString(CATEGORY_TITLE_KEY)
val arguments = arguments
val id = arguments?.getInt(CATEGORY_ID_KEY)