如何在运行时使用带参数的 FragmentFactory?
How to use FragmentFactory with arguments at runtime?
假设我有一个带有构造函数的片段,它在运行时根据网络请求获取参数
class MyFragment(private val myArg: Int) : Fragment() {
// Do layout and other stuff
}
我做了一个示例 FragmentFactory 来传递,但我的问题是有没有更好的方法来传递参数,尤其是当我们有各种片段在运行时需要参数时?
class MyFragmentFactory private constructor() : FragmentFactory() {
var myArg = 0
override fun instantiate(classLoader: ClassLoader, className: String): Fragment {
return when (className) {
MyFragment::class.java.name -> MyFragment(myArg)
else -> super.instantiate(classLoader, className)
}
}
}
有FragmentManager的方法class
public final FragmentTransaction replace(@IdRes int containerViewId,
@NonNull Class<? extends Fragment> fragmentClass, @Nullable Bundle args) {
return replace(containerViewId, fragmentClass, args, null);
}
如何使用此方法,能否与 FragmentFactory 一起使用,以及如何使用此方法将参数传递给片段?
假设我有一个带有构造函数的片段,它在运行时根据网络请求获取参数
class MyFragment(private val myArg: Int) : Fragment() {
// Do layout and other stuff
}
我做了一个示例 FragmentFactory 来传递,但我的问题是有没有更好的方法来传递参数,尤其是当我们有各种片段在运行时需要参数时?
class MyFragmentFactory private constructor() : FragmentFactory() {
var myArg = 0
override fun instantiate(classLoader: ClassLoader, className: String): Fragment {
return when (className) {
MyFragment::class.java.name -> MyFragment(myArg)
else -> super.instantiate(classLoader, className)
}
}
}
有FragmentManager的方法class
public final FragmentTransaction replace(@IdRes int containerViewId,
@NonNull Class<? extends Fragment> fragmentClass, @Nullable Bundle args) {
return replace(containerViewId, fragmentClass, args, null);
}
如何使用此方法,能否与 FragmentFactory 一起使用,以及如何使用此方法将参数传递给片段?