android日期选择区间控件_日常写 bug 之日期控件选择问题

阅读本文大概需要 3 分钟

写 bug 和 改 bug 是程序员的家常便饭,每天不是在改 bug 就是在 写 bug 的路上,碰巧今天遇到一个之前同事写的 bug,虽然不怎么影响使用,但是如果恰好碰到这种场景,使用起来确实不方便,下面简单记录下过程。

问题场景描述

在某个打印模块中,可以根据日期进行筛选历史打印记录,说白了就是可以根据日期查询到某个区间内的打印信息。

下班前我打开了客户端没有关闭,并且打印模块也没有退出,等到第二天到公司后,当我想选择看下今天的打印信息,意外发生了怎么也不能选中今天这一天,最大日期只能选择到昨天。

6aa024a05e04ca7ffa0977570b6e98ca.png
图片

如上图所示,日期控件只能选择到昨天位置。

问题分析

发现问题后马上思考了下大概知道原因了,界面控件在初始化的时候已经根据当前规则设定死了日期最大值,即不能超过当前日期,但是如果软件一直没有关闭,这个值是不会变的,任然是软件运行时当天的日期,这样就会有问题。

由于我们的软件比较特殊,可能医生打开客户端后一个礼拜也不会关闭,一直最小化后台放着,这样就导致了日期不能选择当天的问题。

问题解决

现在的问题就是没有实时刷新当前日期最大值,那么当我们鼠标点击的时候根据当前日期重新刷新下控件的最大值即可

日期控件使用 QML 的 Calendar控件,该控件在初始化的时候有一个 maximumDate  属性,所以我们只需要给它赋值即可。

579f246d678c70dba977a7ec8e638be5.png
图片

简单的代码如下

function updateMaxDate() { // modify by xxx for 这里需要判断当前系统日志和日历最大日历是否一致,不一致需要刷新. // 因为如果打印模块一直不关闭,等到第二天以后最大日期有问题不能点击当前日期.2020.08.06 var currentData = new Date; var calMaxDate = _filmingStartrili.maximumDate.getDate(); if (calMaxDate !== currentData.getDate()) 
    { 
        _filmingStartrili.maximumDate = currentData; 
    } 

总结

其实,很多时候遇到的问题都很好解决,关键是如何发现定位问题,这个是一种不可或缺的能力,可以作为程序员某个不可以替代的技能。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值