# MVVM **Repository Path**: katejun/MVVM ## Basic Information - **Project Name**: MVVM - **Description**: 这是一个android MVVM 框架,基于谷歌dataBinding技术实现 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: https://www.oschina.net/p/mvvm- - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 5 - **Created**: 2020-11-13 - **Last Updated**: 2024-11-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MVVM 这是一个android MVVM 框架,基于谷歌dataBinding技术实现。dataBinding 实现的 V 和 VM的关联;使用IOC架构实现了 M 和 V的关联。
框架具有以下功能:
- [业务逻辑层的分离](#业务逻辑层的分离) - [封装了android 6.0权限申请,在申请权限时,能像View一样设置事件监听](#权限使用) - [创建Fragment、Dialog、popupwindow都将变得极其简单](#其它组件使用) - [占位布局实现将变得极其简单](#占位布局) - [具有dataBinding的一切功能](#使用) - [封装了Okhttp网络请求,实现二级缓存,实现了网络回调监听](#网络请求) 如果你觉得我的代码对你有帮助,请麻烦你在右上角给我一个star.`^_^` ## 下载 [![Download](https://api.bintray.com/packages/arialyy/maven/MvvmFrame/images/download.svg)](https://bintray.com/arialyy/maven/MvvmFrame/_latestVersion)
compile 'com.jakewharton:butterknife:6.1.0'
compile 'com.google.code.gson:gson:2.7'
compile 'com.squareup.okhttp3:okhttp:3.2.0'
compile 'com.arialyy.frame:MVVM2:2.0.4'
## 使用 * 在build.gradle 打开dataBinding 选项 ```gradle android{ ... dataBinding { enabled = true } } ``` * 在Application注册框架 ```java public class BaseApplication extends AbsApplication { @Override public void onCreate() { super.onCreate(); MVvmFrame.init(this); //如果你需要打开异常捕获模块,去掉下面语句的注释,将两个参数改为你的接口和key,便可以将崩溃信息上传到后台服务器 //MVMVFrame.init(this).openCrashHandler("http://192.168.2.183/server.php", "params"); } } ``` ## Module使用 ![Module使用](https://github.com/AriaLyy/MVVM/blob/v_2.0_dev/img/mvvm.gif) ## android 6.0 权限 ![android 6.0权限使用](https://github.com/AriaLyy/MVVM/blob/v_2.0_dev/img/permission.gif) ## 占位布局效果 ![占位布局](https://github.com/AriaLyy/MVVM/blob/v_2.0_dev/img/tempview.gif) ## 业务逻辑层的分离 框架是基于谷歌dataBinding的,布局里面动态设置数据的方法为谷歌 dataBinding的用法方法,想了解更多,可参考[谷歌官方文档](http://developer.android.com/intl/zh-cn/tools/data-binding/guide.html)
这是一个使用网络请求来解析本地IP的例子,请求网络的业务逻辑将写在Moudule里面,Activity只需要调用Module只负责调用Module的业务逻辑以及接受Module的回调数据,不会执行任何与业务逻辑相关的操作
* 首先,为Activity创建一个布局 activity_main.xml ```xml