MVVM学习实验

作者: 爱吃糖的先生 | 来源:发表于2017-09-01 17:08 被阅读0次

MVVM 这种开发模式的作用就是更好的实现UI和数据分离 

Android 实际开发中的问题是 不同的业务逻辑需要View在不同的要求下显示不同数据

具体的使用步骤是

1.先保证自己的Android studio 为最新版本 

然后在build 文件里加下面的代码 

android {

     dataBinding{

           enabled=true

    }

}

然后重新编辑项目

2.新建一个layout 布局

大概长这样

3.新建一个Activity

public classMVVMActivityextendsAppCompatActivity {

    @Override

       protected voidonCreate(Bundle savedInstanceState) {

              super.onCreate(savedInstanceState);

//这个MvvmActivityBinding 是系统自动构建的 就是自己activity 名字打出来就可以有代码提示

MvvmActivityBinding binding=         DataBindingUtil.setContentView(this,R.layout.mvvm_activity);

         User user=newUser("success","222");

         binding.setUser(user);

}

}

具体的使用我现在也是实验阶段目前没有放在项目中

感觉很不错

实践问题

1.实用表达式语法

依据不同的后台判断改变显示值,以及是否显示

android:text="@{test.open ? @string/text_open_custody:@string/text_notopen_custody}

设置动态显示的过程中出现下列的报错

原因是我的语法为

android:visibility="@{test.isOpen ? View.INVISIBLE : View.VISIBLE}"

但是这样写是需要导入相关联包的,需要在最上层节点加入

同理 使用颜色设置语法

android:textColor="@{large ? Color.RED : Color.YELLOW}"/>

导入的就是 

<import type=android.graphics.color/>

2.自定义view的问题

实践中出现了一个问题比如我们需要在acrivity 中产生一个dialog 那这样的话是不能使用databing来进行数据绑定的

很遗憾没有找到合适的方法去处理这个问题

参考资料 data binging  官方地址

https://developer.android.com/topic/libraries/data-binding/index.html 自己翻墙翻译比较好

价值很好的实战经验文章

http://www.jianshu.com/p/96f8d3286a67

相关文章

网友评论

    本文标题:MVVM学习实验

    本文链接:https://www.haomeiwen.com/subject/eeqkjxtx.html