android - 为什么fragment-ktx而不是viewmodel-ktx库中提供了Android viewModels()扩展函数?
问题描述
当我使用viewModels()
如下
class MainActivity : AppCompatActivity() {
private val viewModel: MainViewModel by viewModels()
// ... more codes
}
为什么它可以在
implementation 'androidx.fragment:fragment-ktx:1.3.0'
相反,当我包含以下内容时,它们不可用?
implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.0'
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.0'
implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
我以为它应该在viewmodel-ktx
图书馆而不是fragment-ktx
图书馆
解决方案
根据文档,by viewModels()
扩展是Fragment
类的扩展,因此,必须属于fragment-ktx
工件 -lifecycle-viewmodel-ktx
并且lifecycle-runtime-ktx
对片段没有任何依赖关系,并且工件已完全弃用,并且根据Lifecycle 2.2lifecycle-extensions
根本不应该使用。 0 发行说明。
推荐阅读
- php - 如何在成功付款 authorize.net SIM 方法上获取订单 ID 或任何参考 ID
- ios - 循环遍历嵌套字典以连接 Napalm 中的多个供应商设备
- docker - 在 CI/CD Github (webhooks) 上部署到 AWS 失败
- html - 停止父级滚动并允许绝对定位的子级与父级重叠
- wpf - 在 WPF 中,是否可以将属性的绑定设置为绑定依赖属性?
- python - 在 Django 站点的 pex 上调用 runserver 时如何解决 NotADirectoryError?
- python - 如何使用 python-pptx 删除 pptx 表中不需要的行空间?
- javascript - 将函数分配给变量与仅调用函数相比有什么好处?
- python-3.x - Python3:断言'iter_is_valid(iter,list_store)'失败
- python - Flask-SQLAlchemy & Google App Engine - 没有写权限