首页 > 其他 > 详细

一周小结

时间:2020-03-28 01:07:38      阅读:90      评论:0      收藏:0      [点我收藏+]

实习入职第二周了,从第一周的了解学习公司所用的技术到这周开始的入手相对简单的项目,
接触到了很多曾经听说过却一直没用过的技术,
如Kotlin,MVVM设计模式以及RecycleView装载多种不同类型View的方法

【Kotlin】

一开始公司的前辈就说项目里用到的技术都比较新,当我看到项目里的Kotin代码的时候,老实说,心里有点慌,于是赶紧尝试入门Kotlin基础语法。老实说,Kotlin的代码确实比Java代码看上去简洁,但是对于不熟悉的人来说(对的就是我),有些地方简洁过头让我理解不能(灰溜溜地打开百度,搜索Kotlin里的let,apply,with,run)。接触一段时间感觉还行,但是没有参考自己写的话会感觉很费神。。。

【MVVM】

之前是用过MVC模式写APP的,对设计模式稍微了解一点,

MVP模式仅限于知道原理但是没用过:Model + View + Presenter

Model:数据结构
View:仅用于和用户进行UI交互
Presenter:提供接口,用于进行逻辑处理
优点:用接口进行逻辑处理,代码重用,相对于MVC模式更“解耦”

MVVM模式之前知道但是一直不了解:Model + View + ViewModel

(我才知道原来ViewModel是Jetpack的ViewModel)
此处使用LiveData + ViewModel + Repository实现MVVM模式
Model:即为LiveData
View:仅用于和用户进行UI交互
LiveData:数据持有类(可被订阅者监听?观察!此处应该基于观察者模式吧,猜测)。并且只在激活状态(STARTED、RESUMED)才会通知观察者有数据更新
ViewModel:提供View需要的接口,执行数据转换的逻辑
Repository:处理从各处得到的数据并返回给ViewModel

思路

创建Repository,获取数据并提供接口给ViewModel

创建ViewModel,编写View层需要的接口

创建View层,仅执行UI显示逻辑,不执行数据处理逻辑/

【RecycleView装载多种不同类型的VIew】

以前只是知道RecycleView功能比ListView更为强大(可以横着排列,竖着排列,一排放多个view)
直到看到项目里面装载了不同类型的界面的layout里面只有一个RecycleView!还有这种操作?(内心黑人问号)
绝了
经过对项目作者,也就是公司的前辈的请教,我稍微了解了这种操作的基本思路

枚举不同的View类型

重写getItemViewType()方法判断view的类型,根据其类型引入相对应的布局

重写onBindViewHolder()方法,使用ViewHolder为不同的view绑定数据

学到了学到了

一周小结

原文:https://www.cnblogs.com/clearmoon/p/12584925.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!