说白了讲就是多个View的容器,这里面封装了这些View的逻辑与控制,外部通过传参和回调的方式来对这个容器进行控制,以达到容器里views的高内聚和容器与外部的低耦合的目的。我们这里不深究那些所谓的特效,我们要讲的是从功能的角度来
很简单,你不把这些UI写到一起不觉得难受么?以后改需求牵一发而动全身,这不是很苦逼么,所以我们要把它们抽出来让一个容器收了它们,同时定义一些方法供外层来调用。从设计的角度来讲,程序员不仅要实现需求,并能够为交互对象之间的松耦合设计而努力。这样才叫程序员阿。貌似我好像还没讲清楚为什么要写自定义UI,好吧,开动你的大脑,fragment,甚至是activity。它们的本质上是什么?不就是一个大容器么?不就是一个自定义UI嘛。
怎么写?如果我说看视频是不是找抽的节奏?好吧,这涉及太多东西了,用文字太难表达。
简单说几个原则:
1.粒度要拿捏好,也就是你要把什么View抽出来变成一个容器。做需求分析时要想清楚哪些Views是独立的,可以被封装的。
2.容器虽说控制所有的子View,但是,容器是被外层来控制的,所以容器要对外暴露哪些方法,同时响应事件要如何正确回调给外层。不要频繁的相互引用导致代码混乱
3.遵循MVC,尽量把View和Model能分开,分不开的,就意味这你这个自定义UI实际上是跟具体的Model(Javabean,Descriptor)绑定的,以后是没办法再复用的。
4.为以后的扩展预留接口,也就是多写几行代码的事。
本期课程会讲到两种自定义UI,后续会根据学员反馈再出其他自定义UI
第一种自定义UI:RowView,GroupView,ContainerView。实现动态配置生成如下图所需的UI效果。
p.s. RowView是每个上图每个Item的View。GroupView是上图中封装了多个子Item的Group。ContainerView是封装了多个子Group的容器。
第二种自定义UI:聊天表情(封装所有表情所用到的组件,实现表情选择,表情分组,表情下载等一系列表情相关UI)
该系列是针对中级Android开发者量身定做课程,作为升职加薪的必备工具,不同于市面上那些只是教你调用API的初级视频。这套课程,有深度有广度,为确保大家能学以至用,大家可以加技术QQ群:172448270,或者本人QQ:104816053。也可以访问我的网站www.stay4it.com获取更多技术分享。更多心得请关注微信公众平台:stay4it
课程地址:http://www.chuanke.com/1462121-99650.html