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、实现效果图
后记
刚开始写博客,表达的可能也不是很清楚,有问题的话可以私信,写的又什么问题也欢迎指出