tinder项目感言

来源:互联网 发布:ubuntu接口配置ip地址 编辑:程序博客网 时间:2024/05/22 06:24

细节决定性能

 **以前总觉得android 项目很简单,总是手高眼底,总觉得只要后台把准确的数据给我了,android这边把数据解析对再显示一下就好了;现在想来太天真了; 幸运的是遇见两个android 算不上大牛,但基础很强的两个大哥;在这次tinder项目中大家交给我的功能很少,设置页面,聊天,配对页面,还有忘记密码,让我做的功能大多数他们已经封装好了,我只是调用一下就行;但是业务逻辑很不清晰,只能在做之前去请假他们,整个业务流程怎么搞,虽然在每次问的过程中被骂,但是他们都很细心的跟我说,某个细节出现的问题,及在写的过程中应该怎么写才对后面的优化有好处;**
  • 设置页面功能总结
    年龄是一个两项的seekbar控件,我先是通过百度找别人写好的demo 然后根据需求修改功能,过程比较艰难,但在这其中也明白了看懂别人写的源码的重要性;
    距离是单项的seekbar我给设置了点击图片按钮两个大小一样,内容图片大小不一样的图片进行显示点击时图片变大的效果;
    在设置界面的年龄和距离都不能直接设置数字,因为在这里设置了年龄和距离之后,要在附近页面根据条件进行查找,所以这里我还是把数据保存到sp里面,便于在附近页面取数据。
    修改密码
    修改密码看似简单,但对于我这个竟然匮乏的人而言是相当难的,首先我的密码是注册的时候在sp里面保存的,那么原密码是我直接从sp里取出来的,在修改时我得到新密码控件上输入的密码,然后传给后台让后台帮我保存,在传成功之后提示信息,但这样修改还会出现bug,只能修改一次,在第二次修改后原密码还没变,那么我就要通过UserInfoXml.setPwdnew(changePwdSureed);把sp里面保存的进行密码修改,这样每次修改密码都会是最新的。修改密码页面的创建了一个activity 但是设置界面是一个fragment,在设置界面也有原密码,所以这时候修改密码界面的新密码数据就得更新到settingfragment(设置界面),在这里我用到了
    @Override
    public void onResume() {
    super.onResume();
    settingUserPwd.setText(UserInfoXml.getPassword());
    }
    这段代码才实现的,设置界面就这么完成了

  • 右侧边框聊天页面
    这两个页面看似简单,但里面的逻辑很复杂;都晕了一周了
    聊天页面的头上面有个页签
    但是是一个是MenuRightFragment里面有(聊天页面)PrivateMsgFragment和MatchFragment配对页面 我想到的方法是发eventBus 广播,但是一直发不成功,原因是注册的方法误导我了 里面忘了写注册和解注册执行的方法导致发不成功,之后我就用了个投机取巧的方法,把数据存在sp里面,然后在住fragment里面获取数据,但是这样做的话,数据就会更新不即时,在切换用户之后,聊天和配对的数据还显示没有更新,后面再优化了一下 还是用回之前的eventBus了 这样发消息很即时;此功能就这样艰难的完事了
    聊天页面还有个未读消息显示红点,只是统计聊天列表有未读消息没读显示未读,当点击之后红点消息,这个我在onItemClickListener事件的时候让isread字段设置为已读来改变状态;其实聊天页面逻辑最复杂的还是,在聊天页面未读消息为0是主界面的信息图标上面显示红点,当消息>0 小于总条数时 显示红点,但在点击完所有红点试红色图标消息,此处到最后还是用了eventBus 发订阅消息,但这里发了两个订阅消息,一个是在onItemClickListener发一个post 发消息,在点击未读消息时,发到主界面的信息图标,显示未读消息(红点),但是得统计消息的总数,然后当每次点击时让数据减1,当减到0是红点消息,在此,在网络请求成功之后还得查未读消息的数据,如果未读消息大于0且不为空时,红点显示,当未读消息为0或者其他总数时,红点消息;
    此刻出现的bug是每个页面都有红点出现,在这里就用到标识,把主页,信息,特权,设置界面进行标识,当进入主页和设置页面时显示红点(未读消息提示)在这里
    if (!(index == TAB_INDEX_FRAGMENT_MAIN || index == TAB_INDEX_FRAGMENT_SETTING)) {
    if (mHasUnreadMsg && mTvRightmenuMsg.getVisibility() == View.VISIBLE) {
    mTvRightmenuMsg.setVisibility(View.GONE);
    }
    } else {
    if (mHasUnreadMsg) {
    mTvRightmenuMsg.setVisibility(View.VISIBLE);
    }
    }
    tinder项目中暂时总结这些,再次聊天和所有配对页面还没有做分页,详情请听下次分解。

0 0