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)
Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐