【问题标题】:I can't define supportFragmentManager with kotlin in fragment [duplicate]我无法在片段中使用 kotlin 定义 supportFragmentManager [重复]
【发布时间】:2022-02-25 16:20:27
【问题描述】:
class DataFragment : Fragment() {

private var _binding: FragmentDataBinding? = null
private val binding get() = _binding!!
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)

    val adapter = MyViewPagerAdapter(supportFragmentManager)

    adapter.addFragment(DataFragment(), "Günlük")
    adapter.addFragment(Data2Fragment(), "Aylık")
    adapter.addFragment(Data3Fragment(), "Yıllık")

    viewPager.adapter = adapter
    tabs.setupWithViewPager(viewPager)

}

override fun onCreateView(
    inflater: LayoutInflater, container: ViewGroup?,
    savedInstanceState: Bundle?
): View? {
    _binding = FragmentDataBinding.inflate(inflater, container, false)
    val view = binding.root
    return view
}

我设计了一个 tabLayout 并将它放在名为 DataFragment 的片段中。我打开了名为daily、monthly、yearly 的不同片段并将其添加到代码中。但我不能在这里定义 supportFragmentManager。它给出了一个未解决的参考错误。

class MyViewPagerAdapter(manager: FragmentManager) : FragmentPagerAdapter(manager) {

private val fragmentList: MutableList<Fragment> = ArrayList()
private val titleList: MutableList<String> = ArrayList()

override fun getItem(position: Int): Fragment {
    return fragmentList[position]
}
override fun getCount(): Int {
    return fragmentList.size
}
fun addFragment(fragment: Fragment, title: String) {
    fragmentList.add(fragment)
    titleList.add(title)
}
override fun getPageTitle(position: Int): CharSequence? {
    return titleList[position]
}

这是我定义的适配器的代码。

【问题讨论】:

  • 可能你导入了错误的 Fragment 类。确保从androidx 包中导入。

标签: android kotlin android-fragments fragment


【解决方案1】:
requireActivity().supportFragmentManager

【讨论】:

    【解决方案2】:

    您必须从父活动中调用它,而不是直接从片段中调用它

    简单如下代码:

     activity?.supportFragmentManager?.beginTransaction()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多