1. 代码:
FragmentFactory factory = mManager.getFragmentFactory(); fragment =
factory.instantiate(mContext.getClassLoader(), className);
2.原因:(它建议开发者自定义工厂类来实例化Fragments,这个instantiateFragment() needed to maintain
forward compatibility)
/** * Instantiates the Fragment via the FragmentManager's * {@link
androidx.fragment.app.FragmentFactory}. * * Note that this method is
<strong>not</strong> responsible for calling * {@link
Fragment#setArguments(Bundle)} on the returned Fragment instance. * * @param
context Context providing the correct {@link ClassLoader} * @param
fragmentManager FragmentManager the Fragment will be added to * @param
className The Fragment to instantiate * @param args The Fragment's arguments,
if any * @return A new fragment instance. * @deprecated Set a custom {@link
androidx.fragment.app.FragmentFactory} via * {@link
FragmentManager#setFragmentFactory(FragmentFactory)} to control * instantiation
of Fragments. */ @SuppressWarnings("DeprecatedIsStillUsed") // needed to
maintain forward compatibility @Deprecated @NonNull public Fragment
instantiateFragment(@NonNull Context context, @NonNull FragmentManager
fragmentManager, @NonNull String className, @SuppressWarnings("unused")
@Nullable Bundle args) { return
fragmentManager.getFragmentFactory().instantiate( context.getClassLoader(),
className); }
今日推荐