软工大作业·历物语(一)
文章来源:中国软工亚洲指挥中心(Steins;Gate)
共同作者:纪神,爵爷,老板,小男孩(按首字拼音排序)
责任编辑:爵爷
终于开始了正式的开发工作。鉴于团队之前多少有点开发经验,很多界面写起来并没有什么阻滞,但由于我们都没有深入系统学习过Android架构和API,所以在有些细节上总是会有不到位的地方。
就拿笔者来说,虽然能照葫芦画瓢实现指定的界面和效果,但是总会在一些细微的地方卡住。如通过ViewPager实现SwipeView的解决方案中,ViewPager会时刻保留两个Fragment的View(此处存疑,只是实际操作的情况,并没有查阅过源码),其他的Fragment的view会被destroy掉。被destroyView的Fragment所有的控件都被“下架”,但是实例会被保留,那么对于EditText和RadioButton之类的控件而言,其内容是不会被保存的,除非单独设置变量保存或者放在savedInstanceState中。笔者在这里就卡了很久,又复习了一遍Activity和Fragment的生命周期,并且简单查看了一下ViewPager的源码,才解决了相关的问题。
在实现新闻列表的时候,由于需要上拂加载更多的效果,考虑现有开源方案太过庞大,所以笔者就手写了一个实现。因为新API强迫症,使用了RecyclerView而不是ListView。RecyclerView效率更高,功能更强大,操作也更灵活,但是少了诸多限制也就少了一些方便。如RecyclerView没有OnItemClickListener,笔者就往Adapter里扔了个回调,监听每个条目的点击事件。又如RecyclerView没有默认分隔线,这是可以理解的,因为要同时实现ListView、GridView以及瀑布流的效果。关于添加分割线的方案,鸿洋大大给出了一篇非常精彩的博文Android RecyclerView 使用完全解析 体验艺术般的控件 ,但是由于代码还是过多,所以笔者自己用代码模拟.9图片实现了分隔线效果,就过程而言要简洁的多(当然功能不够强大,具体见Android使用RecyclerView分隔线问题 )。
类似的问题还有很多,虽然都不算是大坑,但是有些地方还是挺绊脚的。现在尽量克制不去过于关注细节,先把大框架做出来,再进行优化工作。
贴出下一周的任务安排:
-
爵爷:
- ①完善登录界面、注册界面、新闻详情界面
- ②添加第一主界面新闻筛选机制(在新闻分类完成基础上)
- ③设计用户偏好计算算法(初步测试)
-
纪神:
- ①和小男孩讨论出新闻的种类,并制定从爬虫正式入库的方案
- ②完善好友界面,实现效果应与微信好友相似,尤其是右侧的A-Z导航(在https://github.com/Trinea/android-open-project找开源方案)
- ③完成好友详情界面,实现效果应与微信好友详情类似,完成好友申请处理界面(微信收到好友申请后好友界面顶端的效果)
-
小男孩:
- ①和纪神讨论出新闻的种类,并制定从爬虫正式入库的方案
- ②完善第四主界面
- ③完成修改用户信息的功能(修改的信息项根据数据库设计来,界面效果按照微信来。其中地区修改先不用做,我之前做过类似的东西,有完整的地区库)
-
老板:
- ①完成第三主界面
- ②继续爬取其他学院的新闻
- ③把爬取的信息按照{纪神和小男孩的方案}正式入库