CountDownView超過24小時不顯示天數,合併到小時+顯示背景色

關於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,所以只要刪了這個判斷就可以愉快的展示了。

效果如下:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章