1
30
Kotlin Android扩展和Android数据绑定库都有助于消除
但是,它们还可以做更多的事情,相互补充。
更详细地说,使用Android数据绑定库,您可以在xml文件中“设置”模型,然后可以直接利用这些模型为布局中的视图设置值。
See
如何
Kotlin android extensions没有提供此功能。
同时,Kotlin android扩展还提供了一些惊人的功能,如
总之,虽然它们都消除了
|
2
30
Kotlin Android Extensions不仅仅代表视图绑定。它还包含其他功能。但我猜你在谈论Kotlin Android扩展的视图绑定/缓存功能,并想知道我们是否仍然需要数据绑定,因为我们已经摆脱了具有Kotlin合成属性的findViewById调用。这是我问自己的问题,我的结论是, 是的,数据绑定仍然值得使用。 从…起 official documentation :
因此,数据绑定不会逐个调用视图上的findViewById。另一方面,Kotlins合成类仍然在引擎盖下的视图上调用findViewById,但它只对每个视图调用一次,并缓存视图引用以供下次调用。(这是一个 article 关于它) 此外,数据绑定提供的不仅仅是视图缓存。您可以使用数据标记将数据传递给绑定实现,并在xml中声明它们,而不是以编程方式进行设置。通过这种方式,您可以摆脱用于填充数据的样板代码,如“setText”、“setImageResource”等。您可以使用数据绑定从xml设置事件监听器。您还可以使用自定义绑定适配器提供自己的属性。当使用它的全部功能时,它可以显著减少Java/Kotlin代码。 编辑: 谷歌安卓团队似乎建议 反对 使用kotlin合成特性。 This article 总结围绕此问题的讨论。你可以在新的 Udacity course 由Google编写,他们使用数据绑定作为推荐做法。 编辑2: 如果您不喜欢“在xml中放置业务逻辑”,如果您对设置或获取xml数据不感兴趣,如果您只是想避免以安全高效的方式使用FindViewById,那么您可以 视图数据绑定 而不是库。它是数据绑定库的简化版本。它不允许您从xml中设置数据,但它以安全有效的方式绑定视图。 |
3
1
我强烈反对上述观点。也许是因为我讨厌用XML编写逻辑。所以两条评论都提到了
假设我们有
在活动或片段中,我们可以
在数据绑定中,您必须
KTX代码比使用数据绑定来实现相同的结果要干净得多。当您需要设置值以查看数据绑定的条件时,情况会变得很糟糕。 所以对我来说,Kotlin Android扩展工作得更好。我喜欢我的代码干净。你仍然可以同时使用这两种方法来做出决定。 |
Abhilash Das · 输入文本时,编辑文本与工具栏重叠 1 年前 |
Community wiki · 局部变量可能尚未初始化 1 年前 |
jvargas · 如何获取上个月的第一天和最后一天以及一年的第一天 1 年前 |