重构L**MM图标浏览模式的文件管理器

1、切换浏览方式的逻辑改变

原本:先回到上一层然后再回到当前这一层  

         优点:上层调用方面的代码复用率高

         缺点:但是较下层的数据管理层方面的实现逻辑较复杂,较难维护(估计只有我能看懂-_-)

现在:直接使用当前的数据更换view来显示 

         优点:业务逻辑容易看懂,数据层实现简单化了,容易维护

         缺点:上层侵犯了一些业务层的逻辑,或者说拖过来包办了


重构之后的逻辑

(1)通过上下调用数据层的onfinish重新刷新view来显示,不能越过是因为要使用原来这条链的对象

(2)在enterDIR要记住当前的view模式以便在enterParentDIR时判断不同则要改变currentPage 和 position

(3)调用onfinish时因为类似enterDIR,所以得把position重置为0

(4)区分几个页面的逻辑:topdata Resource 、state为显示设备状态、state为显示资源状态


2、上下翻页或者切换按钮到gridview或者类型按钮到gridview的逻辑改变

(1)在grid的onslected函数中把localdatabrowser的focuspisition和pisition一致之后则不会按两下才翻页,因为之前的fucuspisition更新刚好慢了一拍

(2)在gridview切换到类型按钮之前需要两次都是因为position在selected改变了,先于processRightKeyDown发生了,所以才使得focuspisitonnow多加了1

然后在processkeyright完了之后再减少1。

         现在是怎么改变的呢?

         首先算一下各种情况出现的出现的次数:

              <1>在切换list到grid、点击进入下一层文件夹、切换按钮到grid、类型按钮到grid 均需要按左两次才能到类型按钮

      <2>从0-〉6或者6-〉0也需要两次

              <3>在gridview中其余移动的需要1次

        针对<1>、<2>进行处理:

切换list到grid、点击进入下一层文件夹:在hander里面更新UI数据的时候令positionFocusNow=0;

切换按钮到grid、类型按钮到grid:分别在processDownKeyDown、processRightKeyDown 令positionFocusNow=0;

令为0的好处有使得:在类型按钮不管按多少次都会重置为0,有时候从类型按钮回到grid是不一定会触发onselected的。所以没触发的时候因为重置为0了,得到理想结果。

触发的话,就要判断当前的positionFocusNow,pisition是否都为0;是的话则不用positionFocusNow+1了。

从0-〉6或者6-〉0:判断这两种情况,分别使得positionFocusNow=pisition


总结:分支很多的情况,一定要画图或者罗列出所有的情况才下手编程,否则则是浪费时间。


  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值