一:整体的架构
当下最大众的应用应该是微信了,所以这里呈现上参考微信的方式进行实现,主页当中有五个Tab。分别是资讯,新闻,娱乐,读书,我的。
二:主页面的实现
1.实现方式:RadioGroup + RadioButton 实现主页底部Tab,内容使用ViewPager呈现。选择这种方式的有点就是你点击底部的一个Tab 系统帮你处理切换选中的Tab,监听RadioGroup的OnCheckedChangeListener可以很方便的配合ViewPager切换展示页面。当然这些都是技术的小点。其他方式都可以,应用的实现也需要根据具体的业务来定方案。
2.自定义View:在开发过程中 使用自定义View非常之多,自定义的View实现这样几种场景,a.原生的View功能上不满足,扩充原生的View b.不是单独的一个View,而是由多个View组合而成。c.原生的View不支持期望的功能,自己去继承View或者是ViewGroup是重写重绘View。
3.实现ViewPager的Adapter,添加ViewPager的页面选择监听,同步底部的Tab。底部的Tab添加OnCheckedChangeListener监听,同步ViewPager的页面切换。
简单的主页就搭建而成了。看看效果吧
github:git@github.com:wzp09tjlg/Teach.git
查看:tag2.0
三:两个Tab的实现
1.获取易源的咨询接口的信息,将信息进行展示。
2.获取新闻频道接口的信息,将信息进行展示。
PS.在代码中 不是纯正MVP。其实更确切的说 应该是MP模型。P中处理了数据,所以这里的P层包括MVP层次上的MP层。
代码详见:tag2.1
四:代码总结
1.基本构建已经完成,现在只是在实现主页中的简单页面,布局基本知识,组件的使用呢基本知识,DataBinding的使用,自定义View实现及调用。
2.MVP框架的使用,分清楚MVP各层分别代表的是什么意思。以及各个层次的功能。
3.网络框架的使用,获取数据之后如何转换成展示的数据。
github地址:git@github.com:wzp09tjlg/Teach.git
代码查看:tag2.0 和 tag2.1