關於CountDownView
這裏就不做介紹了,總之是一個優秀的倒計時開源控件,用法十分簡單,具體大家可以到GitHub上了解
https://github.com/iwgang/CountdownView
遇到的問題
最近公司有在用CountDownView這個控件,來做秒殺倒計時。我本以爲這種秒殺不會超過24小時,但問了產品之後確實有超過24小時的情況,並且超過的不能顯示天數,也要繼續歸到小時上。
其實CountDownView本身提供了這樣的屬性來實現
app:isShowDay="false"//設置不顯示時間
app:isConvertDaysToHours="true"//超過一天轉換爲小時
但是必須要隱藏掉背景色才能正常顯示,否則是不起作用的,也就是再加上這條屬性
app:isHideTimeBackground="true"//隱藏背景色
如果你的需求不需要背景色,這三條屬性就能滿足,但是如果還需要背景色,就只能通過改源碼來實現了。
其實也很簡單,首先依賴CountDownView的library,找到BaseCountDown這個類,搜索isConvertDaysToHours,也就是天數轉化小時的方法,發現這樣一行代碼
if (ta.getBoolean(R.styleable.CountdownView_isHideTimeBackground, true)) {
isConvertDaysToHours = ta.getBoolean(R.styleable.CountdownView_isConvertDaysToHours, false);
}
可以看出這裏做了約束,如果不隱藏背景讓isConvertDaysToHours 強制爲false,所以只要刪了這個判斷就可以愉快的展示了。
效果如下: