我正在查看 文档 并发现了这个
此类在 API 级别 P 中已弃用。
为什么 fragments 在 android P 中被弃用?
原文由 RoyalGriffin 发布,翻译遵循 CC BY-SA 4.0 许可协议
我正在查看 文档 并发现了这个
此类在 API 级别 P 中已弃用。
为什么 fragments 在 android P 中被弃用?
原文由 RoyalGriffin 发布,翻译遵循 CC BY-SA 4.0 许可协议
万一有人在寻找通过类名实例化片段的方法。
Fragment.instantiate(context, fragmentClass)
val fm: FragmentManager = ...
fm.fragmentFactory.instantiate(ClassLoader.getSystemClassLoader(), fragmentClass)
文件名: FragmentManagerExt.kt
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentManager
fun FragmentManager.instantiate(className: String): Fragment {
return fragmentFactory.instantiate(ClassLoader.getSystemClassLoader(), className)
}
val fragment = supportFragmentManager.instantiate(fragmentClassName)
原文由 Markymark 发布,翻译遵循 CC BY-SA 4.0 许可协议
3 回答972 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
1 回答846 阅读✓ 已解决
2 回答958 阅读
2 回答895 阅读
1 回答833 阅读
2 回答699 阅读
支持库 27.1.0 中的重写
Ian 的中篇文章(2018 年 2 月 28 日)给了我们一个解释。他是 Google 的 Android 框架开发人员。
似乎
Fragment
和FragmentActivity
中的代码已被重构以使 Loaders 成为可选依赖项。根据 发行说明,新实施基于
Lifecycle
。架构组件
在 支持库 26.1.0 中,
Fragment
和FragmentActivity
采用了Lifecycle
。相比之下,Android P中的 Fragment 和 Activity 都没有实现接口
LifecycleOwner
。在 Google+ 帖子 中(在 ThanosFisherman 的回答 中提到),Ian 发表了评论:
我认为这就是 Android P 不采用
Lifecycle
的原因。因此Fragment
在 Android P 中被弃用。