Fragments deprecated in Android P

后端 未结 4 658
无人共我
无人共我 2020-12-08 09:56

I was looking at the documentation and found this

This class was deprecated in API level P.

Why are fragments deprecated in android

4条回答
  •  甜味超标
    2020-12-08 10:24

    In case anyone was looking for the way to instantiate fragments by the class name.

    Old way:

    Fragment.instantiate(context, fragmentClass)

    New way:

    val fm: FragmentManager = ...
    fm.fragmentFactory.instantiate(ClassLoader.getSystemClassLoader(), fragmentClass)
    

    Using an extension:


    File name: FragmentManagerExt.kt

    import androidx.fragment.app.Fragment
    import androidx.fragment.app.FragmentManager
    
    fun FragmentManager.instantiate(className: String): Fragment {
        return fragmentFactory.instantiate(ClassLoader.getSystemClassLoader(), className)
    }
    

    Example usage:

    val fragment = supportFragmentManager.instantiate(fragmentClassName)
    

提交回复
热议问题