【问题标题】:Could not find Fragment constructor kotlin找不到片段构造函数kotlin
【发布时间】:2021-02-04 07:40:31
【问题描述】:

在创建流行片段时,我得到一个空的构造函数错误。

请看一下我写的代码,创建片段时如何传递数据?

   mAdapter = SubPagerAdapter(childFragmentManager)
                    for (doc in it.docs!!) {

                        mAdapter.addFragment(
                            PopularFragment(doc.code, "#${doc.name}", 10),
                            doc.name
                        )
                    }
                    viewpager.adapter = mAdapter
                    tabs.setupWithViewPager(viewpager)

class PopularFragment(private val hashTagsCode: Int, private val title: String, private val ItemCount: Int) : Fragment() {

    var mHashTagsCode = hashTagsCode
    var mTitle = title
    var mItemCount = ItemCount
}

【问题讨论】:

  • 将捆绑包作为参数传递

标签: kotlin android-viewpager fragment


【解决方案1】:

您应该始终将data 传递给Fragment,使用Bundle 作为arguments

 class PopularFragment : Fragment() {
    
        var mHashTagsCode = 0
        lateinit var mTitle :String
        var mItemCount = 0
        
        companion object{
           fun instance(hashTagsCode: Int, title: String, itemCount: Int){
                val data = Bundle()
                data.putString("hash_tag_codes", hashTagsCode)
                data.putString("title", title)
                data.putString("item_count", itemCount)
                return PopularFragment().apply{
                     arguments = data
                }
           }
        }
        
        override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
             mItemCount = arguments?.getInt("item_count")?:0
             mHashTagsCode = arguments?.getInt("hash_tag_codes")?:0
             mTitle = arguments?.getString("title")
        }
    
    }

用于创建实例

 mAdapter = SubPagerAdapter(childFragmentManager)
 for (doc in it.docs!!) {
      mAdapter
      .addFragment(PopularFragment.intsance(doc.code, "#${doc.name}", 10),doc.name)
 }
 viewpager.adapter = mAdapter
 tabs.setupWithViewPager(viewpager)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-17
    • 1970-01-01
    相关资源
    最近更新 更多