Doi*_*nhe 7 android kotlin kotlin-android-extensions android-databinding
我想知道在开发 Android 应用程序时编写额外代码以在 Kotlin 中实现数据绑定的好处。因为 Kotlin 扩展已经允许我们直接访问视图,而无需 findViewById。
我在这里找到了答案:
嘿!Google 的 Android 开发者倡导者在这里!
我想在这里添加一些背景。具有合成视图的 Kotlin 扩展从未被有意“推荐”,尽管不应将其视为不使用它们的建议。如果它们为您工作,请随时继续在您的应用中使用它们!
我们一直在远离它们(例如,我们不在 Udacity 课程中教授它们),因为它们公开了一个与布局无关的全局名称空间,该名称空间实际上膨胀而没有检查无效查找,仅是 Kotlin,并且不'当视图仅存在于某些配置中时,不公开可空性。总之,这些问题导致 API 增加了 Android 应用程序的崩溃次数。
另一方面,它们确实提供了一个轻量级的 API,可以帮助简化视图查找。在这个领域,还值得一看数据绑定,它也可以进行自动视图查找 - 以及与 LiveData 集成以在数据更改时自动更新您的视图。
今天,这个领域有几个可行的选择:
- 数据绑定是视图查找和绑定的推荐,但与 Android Kotlin 扩展相比,它确实增加了一些开销。值得一看,看看这是否适合您的应用程序。数据绑定还允许您观察 LiveData 以在数据更改时自动绑定视图。与 Kotlin 扩展相比,它增加了视图查找和类型安全的编译时检查。
- Android Kotlin Extensions不是官方推荐的(这与推荐反对不同)。它确实存在上述问题,因此对于我们的代码,我们没有使用它们。
- Butter Knife是另一种非常流行的解决方案,它适用于 Kotlin 和 Java 编程语言。
阅读这里的评论,有很多开发人员对 Kotlin Extensions 感到非常幸运。这很棒 - 在我们寻找继续改进 API 的方法时,我们会牢记这一点。如果您还没有看过数据绑定,一定要试一试。
顺便说一句,我们的内部代码风格指南不打算直接应用于我们的代码库之外。例如,我们使用 mPrefixVariables,但没有理由每个应用程序都应该遵循这种风格。
归档时间: |
|
查看次数: |
1026 次 |
最近记录: |