Android计时器控件Chronometer使用记录

前言

最近公司要求在RecycleView列表中加倒计时和计时器,时间没到选择时间,进行倒计时,依次递减;时间超过选择时间,使用计时器,依次递增;倒计时很简单,可以使用CountDownTimer进行实行,但是计时器以前却没有使用过;
刚开始,用了Timer实现计时器,但是Timer使用了新线程,在列表中更新数据就成了问题,于是引入了handler和message进行通知数据更新,然后使用notifyDataSetChanged() 或是notifyItemChanged() 列表数据刷新,但是发现滑动列表时候灰非常卡,时间就了还会ANR,只能重新修改,后面就发现了Chronometer,上面这些问题都不存在,而且使用还很简单,防止忘记,就记录下来。

1、布局文件中添加Chronometer

在Xml中添加Chronometer,设置android:format="%s",其余参数和Text View差不多

<Chronometer
     android:id="@+id/crm_follow_item_status_chronometer"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:format="%s"
     android:textSize="@dimen/sp_12"
     android:textColor="@color/red"
     android:visibility="gone"/>

2、Java代码中

	 val statusChronometer = holder.getView<Chronometer>(R.id.crm_follow_item_status_chronometer)
	 var statusTextOut: String
	 val currentTime = TimeUtils.getNowDate()
	 val followTime = TimeUtils.getNowDate()
	 var timeCount = abs(currentTime.time - followTime.time)
	 statusChronometer.setOnChronometerTickListener {
	      timeCount += 1000
	      statusTextOut = "超时" + LocalTimeUtils.formatDuring(timeCount)
	      statusChronometer.text = statusTextOut
	 }
	 statusChronometer.start()

3、实现效果图

在这里插入图片描述

后记

刚开始写博客,表达的可能也不是很清楚,有问题的话可以私信,写的又什么问题也欢迎指出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值