Fragment 1.2.0 更新记录
1.官方地址
https://developer.android.com/jetpack/androidx/releases/fragment
2.引入方法
1 dependencies { 2 def fragment_version = "1.2.5" 3 4 // Java language implementation 5 implementation "androidx.fragment:fragment:$fragment_version" 6 // Kotlin 7 implementation "androidx.fragment:fragment-ktx:$fragment_version" 8 // Testing Fragments in Isolation 9 debugImplementation "androidx.fragment:fragment-testing:$fragment_version" 10 }
3.版本 1.2.0
2020 年 1 月 22 日 发布了
androidx.fragment:fragment:1.2.0
androidx.fragment:fragment-ktx:1.2.0
androidx.fragment:fragment-testing:1.2.0
版本 1.2.0 中包含以下提交内容。(自 1.1.0 以来的重要变更)
- FragmentContainerView:我们强烈建议使用
FragmentContainerView
容器来存储动态添加的 Fragment,而不要使用FrameLayout
或其他布局。FragmentContainerView 同样支持class
、android:name
和可选的android:tag
(这与<fragment>
标记相同),但会使用常规的FragmentTransaction
来添加此初始 Fragment,而不会添加<fragment>
使用的自定义代码路径。 onDestroyView()
调用时机:Fragment 现在会等到退出动画、退出框架转换和退出 AndroidX 转换(使用 Transition1.3.0
时)完成后再调用onDestroyView()
。- 基于类的
add()
和replace()
:在FragmentTransaction
中添加了add()
和replace()
的新重载,这些重载采用Class<? extends Fragment>
和Bundle
(可选)参数。这些方法使用您的FragmentFactory
来构造要添加的 Fragment 的实例。此外,还向fragment-ktx
中添加了使用具体化类型(例如fragmentTransaction.replace<YourFragment>(R.id.container)
)的 Kotlin 扩展程序。 - Lifecycle ViewModel SavedState 集成:现在将
by viewModels()
、by activityViewModels()
、ViewModelProvider
构造函数或ViewModelProviders.of()
与 Fragment 一起使用时,会使用SavedStateViewModelFactory
作为默认出厂设置。 - 新的 Lint 检查:添加了新的 Lint 检查,以确保您在从
onCreateView()
、onViewCreated()
或onActivityCreated()
观察LiveData
时使用getViewLifecycleOwner()
。 - 弃用
getFragmentManager()
:弃用了关于 Fragment 的getFragmentManager()
和requireFragmentManager()
方法,并替换为单个getParentFragmentManager()
方法,后者会返回添加了 Fragment 的非 nullFragmentManager
(您可以使用isAdded()
来确定是否可以安全调用该方法)。 - 弃用
FragmentManager.enableDebugLogging()
:弃用了静态FragmentManager.enableDebugLogging
方法。FragmentManager 现在遵循FragmentManager
标记的Log.isLoggable()
,以允许您启用DEBUG
或VERBOSE
日志记录,而无需重新编译应用。
已知问题
- ProGuard 不会自动保留仅通过
FragmentContainerView
上的class
或android:name
属性引用的 Fragment,需要您为每个 Fragment 类手动添加保留规则。 - 通过
FragmentContainerView
使用class
或android:name
在 XML 文件中添加NavHostFragment
时,您无法在 Activity 的onCreate()
中使用findNavController()
。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?