我正在阅读关于MVVM架构如何工作以及如何使用Android数据绑定库帮助的文章。
总的来说,我理解Android数据绑定在UI层和保存要显示的信息的底层数据模型之间创建了一个链接。
Kotlin Android扩展是另一个Kotlin插件,它允许您从活动、片段和视图中恢复视图。该插件将生成一些额外的代码,允许您访问XML布局中的视图,就像它们是属性一样,具有在布局定义中使用的id的名称。
使用Android数据绑定库和Kotlin Android扩展有什么区别?它们是为了不同的目的吗?他们以什么方式互相补充?
谢谢你的回答。
发布于 2019-03-25 16:42:55
我强烈不同意上述各点。也许是因为我讨厌用XML编写逻辑。因此,这两个评论都提到了在Kotlin扩展(KTX)中找不到的<data>标记的使用。使用kotlin和KTX,您可以做得比数据标记更好。
假设我们有
data class Person(val name:String, 
                   val phone:String,
                   val isMale:Boolean,
                   val isMarried:Boolean)在活动或片段中,我们可以
fun updateView(data:Person){
    with(data){
     nameTextField.text = if(isMale){
                            "Mr. $name" 
                          } else {
                             if(isMarried){
                              "Mrs. $name"
                             }else{
                              "Miss $name"
                             }
                          }
     phoneTextField.text = phone
    }
 }在数据绑定中,您必须执行以下操作
android:text='@{person.isMale ? "Mr."+user.name: ((user.isMarried ? "Mrs. " :                   "Miss. ") + user.name)}'
为了达到同样的结果,KTX代码要比数据绑定要干净得多。当您需要条件来设置值来查看数据绑定时,会变得很难看。所以对我来说,Kotlin Android扩展工作得更好。我喜欢我的代码很干净。你仍然可以使用这两个决定是你做的。
https://stackoverflow.com/questions/50226081
复制相似问题